Я читал о том, как включать и отключать сервисы в Ubuntu, и кажется, что есть разные возможности для управления ими.
Первый метод, который я нашел, - update-rc.d
это добавить новые сервисы для запуска, которые нацелены на /etc/init.d
папку и ее содержимое.
Другой, который я нашел, - редактировать .conf
файлы в /etc/init
папке.
Какой рекомендуемый способ включить / отключить / добавить службы и почему?
Не могли бы вы дать краткий пошаговый пример того, как добавить сервис в Ubuntu, включить и отключить его?
chkconfig
это то, что вы ищете.autostart
манифестах или в*.service
файлах в нескольких местах, а также вinit.d
илиcrontab
. См .: unix.stackexchange.com/a/525845/43233Ответы:
Существуют службы, которые можно включить / отключить с помощью графического интерфейса (например,
startup
приложения) или терминала.Для терминала у вас есть несколько вариантов. Сначала откройте терминал (например, введите «терминал» в тире и откройте его). Затем:
Временное включение / отключение услуг
Чтобы временно остановить и запустить службы (не включает и не отключает их для будущих загрузок), вы можете ввести
service SERVICE_NAME
. Например:sudo service apache2 stop
( ОСТАНОВИТ службу Apache до перезагрузки или до ее повторного запуска).sudo service apache2 start
( Запустит службу Apache, предполагая, что она была остановлена раньше.).service apache2 status
(Сообщит вам СОСТОЯНИЕ услуги, если она включена / работает, отключена / НЕ работает.).sudo service apache2 restart
( Перезапустит службу. Это чаще всего используется, когда вы изменили конфигурационный файл. В этом случае, если вы изменили либо конфигурацию PHP, либо конфигурацию Apache. Перезапуск избавит вас от необходимости останавливаться / запускаться с помощью 2 командных строк. )service apache2
(В этом случае, поскольку вы не упомянули ACTION для выполнения для службы, он покажет вам все параметры, доступные для этой конкретной службы.) Этот аспект варьируется в зависимости от службы, например, в MySQL он будет упоминать только то, что он отсутствует параметр. Для других сервисов, таких как сетевой сервис, следует упомянуть небольшой список всех доступных опций.Systemd
Начиная с Ubuntu 15.04, Upstart устареет в пользу Systemd. С помощью Systemd для управления услугами мы можем сделать следующее:
systemctl start SERVICE
- Используйте его для запуска службы. Не сохраняется после перезагрузкиsystemctl stop SERVICE
- Используйте его, чтобы остановить службу. Не сохраняется после перезагрузкиsystemctl restart SERVICE
- Используйте его для перезапуска службыsystemctl reload SERVICE
- Если служба поддерживает ее, она перезагрузит связанные с ней файлы конфигурации, не прерывая процесс, использующий службу.systemctl status SERVICE
- Показывает статус службы. Сообщает, работает ли служба в данный момент.systemctl enable SERVICE
- Включает службу, при следующей перезагрузке или при следующем событии запуска. Это сохраняется после перезагрузки.systemctl disable SERVICE
- Служба отключается при следующей перезагрузке или при следующем событии остановки. Это сохраняется после перезагрузки.systemctl is-enabled SERVICE
- Проверьте, настроен ли сервис на запуск или нет при следующей перезагрузке.systemctl is-active SERVICE
- Проверьте, если услуга в настоящее время активна.systemctl show SERVICE
- Показать всю информацию об услуге.sudo systemctl mask SERVICE
- полностью отключить сервис, связав его с/dev/null
; вы не можете запустить сервис вручную или включить сервис.sudo systemctl unmask SERVICE
- Удаляет ссылку на/dev/null
и восстанавливает возможность включить и / или вручную запустить службу.UPSTART (устарел с 15.04)
Если мы хотим использовать официальный способ Upstart (обратите внимание, что на данный момент не все службы были преобразованы в Upstart), мы могли бы использовать следующие команды:
status SERVICE
- Это скажет нам, работает ли преобразованный сервис или нет. Обратите внимание , что это осуждается в пользуstart
,stop
,status
иrestart
. Он также сообщит нам, если служба еще не была преобразована в upstart:Преобразованная служба обычно выводит текущее состояние (запуск, запуск, остановка ...) и идентификатор процесса. Не преобразованный сервис выдаст ошибку о неизвестном задании .
Некоторые сочетания клавиш могут работать только с приведенной
service
выше командой, но не с приведенными ниже командами, если они не на 100% преобразованы в службы upstart:СТАРТ -
sudo start mysql
СТОП -
sudo stop mysql
RESTART -
sudo restart mysql
СТАТУС -
sudo status smbd
Включение / отключение службы
Чтобы отключить запуск или остановку службы, вам необходимо:
где раздел
manual
остановит Upstart от автоматической загрузки службы при следующей загрузке. Любая служба с.override
окончанием будет иметь приоритет над исходным файлом службы. После этого вы сможете запустить службу только вручную. Если вы не хотите этого, просто удалите.override
. Например:Переводит сервис MySQL в
manual
режим. Если вы не хотите этого, потом вы можете просто сделатьи перезагрузитесь, чтобы служба снова запустилась автоматически. Конечно, чтобы включить службу, наиболее распространенным способом является ее установка. Если вы устанавливаете Apache, Nginx, MySQL или другие, они автоматически запускаются после завершения установки и запускаются каждый раз при загрузке компьютера. Отключение, как упомянуто выше, будет использовать сервис
manual
.источник
.service
к каждой команде?systemctl mongod status
работал просто отлично.systemd
Набор команд работает лакомство на Ubuntu 18.04.В настоящее время существует три различных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба здесь определяется как программа, запускаемая системой в фоновом режиме, в отличие от программы, запускаемой и запускаемой непосредственно пользователем.
SysV
Традиционный способ запуска служб в Linux состоял в том, чтобы поместить сценарий
/etc/init.d
и затем использоватьupdate-rc.d
команду (или в дистрибутивах на основе RedHatchkconfig
), чтобы включить или отключить его.Эта команда использует слегка сложную логику для создания символических ссылок
/etc/rc#.d
, которые управляют порядком запуска служб. Если вы запустите,ls /etc/rc2.d
вы можете увидеть порядок, в котором службы будут убиты с именем файла, какK##xxxx
и началось с имен файловS##xxxx
.##
ВS##xxxx
означает «стартовый заказ» для обслуживанияxxxx
. И наоборот,##
inK##xxxx
означает порядок уничтожения для обслуживанияxxxx
.Одна из основных проблем с SysV заключалась в том, что при загрузке системы все должно выполняться последовательно, одно за другим, что делает время загрузки системы очень медленным . Были предприняты попытки распараллелить это, но они были случайными и их трудно было в полной мере использовать. Это было главной причиной создания Upstart .
Выскочка
Upstart использует файлы определения задания,
/etc/init
чтобы определить, по каким событиям должна быть запущена служба. Таким образом, пока система загружается, upstart обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, во время работы другой службы, связанной с ЦП, или когда сеть ожидает назначения динамического IP-адреса.Вы можете увидеть все файлы выскочки, запустив
ls /etc/init/*.conf
Позвольте мне остановиться здесь и сказать, что если вы не знаете, что такое сервис или что он делает, НЕ отключайте его!
Не все услуги были преобразованы в выскочку. Работая над командой серверов в Canonical в течение последних нескольких месяцев, я работал над несколькими преобразованными файлами заданий, и самое приятное в том, что он позволяет избавиться от всего «волшебства» сценария и просто вставить Несколько команд здесь и там, чтобы точно определить, как запустить службу, и ничего более. Но пока только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Является ли сервис выскочкой?
Чтобы выяснить, основана ли служба на выскочке, вы можете выполнить команду состояния:
Если это выскочка , она покажет это:
Но если это не так, вы увидите нечто более похожее на это:
В этом случае
apache2
не был преобразован в выскочку . Итак, чтобы отключитьapache2
вас просто запуститьОтключить услуги (рабочие места) в выскочке
Определения заданий Upstart не имеют
update-rc.d
команды. Чтобы отключить задание, вам нужно отредактировать файл задания, чтобы отключить его. Есть два способа сделать это.Если вы все еще хотите запустить его вручную, вам необходимо закомментировать
start on
условие. Скажем, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):Чтобы отключить самбу , вы можете просто поставить
#
перед "start on local-filesystems
". Обратите внимание, что пока он не запустится при загрузке, на этот раз вам все равно нужно остановитьОднако, если вы никогда не хотите запускать samba , я бы предложил удалить пакет. Однако, если вы хотите, чтобы он был установлен, но не запускался, вы также можете сделать:
Отключить службу с помощью раздела «Старт / Стоп» (по состоянию на 11.04)
Начиная с версией выскочки , который будет в 11.04, есть новое ключевое слово , которое отключает
start on
иstop on
строфы:manual
. Итак, еще один способ отключить службу с 11.04:Вы можете создать
override
файл, чтобы отключить службу, не редактируя определение задания вообще, просто вставив в негоmanual
ключевое слово.источник
echo manual >> /etc/init/<service>.override
предпочтительнее, так как он оставляет исходный файл .conf без изменений. Как бы то ни было, до сих пор обидно, что на разработку такого базового включения / выключения ушло 3 года, и для этого нет графического интерфейса./etc/init/ssh.conf
существует , ноstatus ssh
иstatus sshd
как говорят , «Неизвестная работа». Этот ответ, похоже, не рассматривает такую возможность?status ssh
дает мне «Неизвестную работу», ноservice ssh status
работает на меняSysV-RC-конф
Попробуйте использовать sysv-rc-conf
и начать управлять услугами, выполнить
Который выведет интерактивное окно, как это
Вы можете далее перемещаться по страницам, используя
Ctrl+n
для следующей страницы иCtrl+p
для предыдущей страницы. Вы можете включать и отключать службы, выбираяSPACE
нужные уровни запуска.Работа-Admin
Другой альтернативой будет Jobs-Admin путем установки через
Который также обеспечивает GUI, как это
Чтобы показать больше рабочих мест, вы должны поставить галочку Показать защищенные задания в его меню.
chkconfig
И третий вариант будет chkconfig ,
Его можно использовать через интерфейс командной строки
chkconfig
, показывая список заданий вкл / выкл. Также мы можем просматривать системные сервисы используяchkconfig –list
Сервисы могут быть включены с помощью
Услуги могут быть отключены с помощью
И мы даже можем добавить наш собственный сервис, используя правильный скрипт инициализации с правильными заголовками.
обновление-rc.d
И еще один вариант можно сослаться сюда update-rc.d , кратко объясненный здесь .
Обратите внимание, что для Ubuntu Server 12.04
update-rc.d
вместо chkconfig используется.источник
Package chkconfig is not available, but is referred to by another package.
Для тех из нас, кто запускает Ubuntu через ssh, я думаю, что самый хороший вариант
rcconf
- текстовая программа:Навигация с помощью клавиш со стрелками и клавишами, нажмите пробел, чтобы включить / отключить. Изменения сохраняются при перезагрузке.
Снимок экрана заимствован из этого поста , который также показывает
sysv-rc-conf
- аналогичный инструмент, который также позволяет установить уровень запуска. (Для тех, кому небезразличны уровни запуска, можно изменить их :)К сожалению, rcconf не работает с upstart (сервисами, перечисленными в
/etc/init/*
), просто с традиционным механизмом (ls -l /etc/init.d/*
те, которые не являются символическими ссылками).К счастью, многие из служб, которые имеют отношение при подключении к серверу (Apache, Tomcat, mdadm, boinc-client ...), еще не были перемещены в upstart.
источник
update-rc.d
был изменен, а некоторые его устаревшие функциональные возможности были удалены . В ошибке Debian # 727735 отмечается, что rcconf не был изменен для соответствия. И нет, rcconf также не работает с systemd, поэтому он не применим ни к одной из стандартных систем инициализации Ubuntu Linux в течение последнего десятилетия.Я обнаружил, что есть этот инструмент с графическим интерфейсом, похожий на BUM, но совместимый с Upstart:
Работа-Admin
источник
Редактирование существующего файла конфигурации upstart (как описано выше) не очень хорошая идея. Обновленный пакет может предоставить обновленную конфигурацию, и вам придется повторять ваши изменения снова и снова.
Взглянув на
man 5 init
один, вы найдете более подходящее решение: использование переопределенной конфигурации. Краткий пример: скажем, у нас есть служба под названием «foobar», поэтому будет файл/etc/init/foobar.conf
с его конфигурацией upstart. Теперь вы не хотите ни удалять этот файл, ни изменять его - но вы также не хотите, чтобы эта служба работала? Так разместить переопределения файл рядом с ним:/etc/init/foobar.override
, содержащим (необязательно заголовком с описанием и) вместо этогоstart on
/stop on
строки , которые вы поместите строку с одним словом:manual
. Таким образом, вы говорите upstart в основном использоватьfoobar.conf
, но переопределяете определение запуска, чтобы запускать эту службу только при принудительном применении вручную (service foobar start
в нашем примере).источник
Также есть менеджер загрузки .
Установить:
sudo apt-get install bum
Дополнительная информация: http://www.marzocca.net/linux/bum.html
источник
Я использую Stacer. Это показывает услуги и процессы также. Полный набор инструментов системы GUI. https://github.com/oguzhaninan/Stacer
источник