Как включить или отключить службы?

Я читал о том, как включать и отключать службы в Ubuntu, и, похоже, существуют различные возможности для управления ими.

Первый метод, который я нашел, - это update-rc.d для добавления новых сервисов в startup, который нацелен на /etc/init.d папка и ее содержимое.

Другой, который я нашел, - это редактировать .conf файлы в /etc/init папка.

Каков рекомендуемый способ включения / отключения / добавления служб и почему?

Не могли бы вы, пожалуйста, привести краткий пуленепробиваемый пошаговый пример того, как добавить службу в Ubuntu, включить и отключить ее?

Существуют службы, которые можно включить / отключить с помощью графического интерфейса (например, startup приложение) или терминал.

Для терминала у вас есть несколько вариантов. Сначала откройте терминал (введите "терминал" в тире, например, и откройте его). Затем:

Временное включение/отключение служб

Для остановки и запуска служб временно (Не включает / отключает их для будущих загрузок), вы можете ввести service SERVICE_NAME [action]. Например:

  • sudo service apache2 stop: Будет остановка служба Apache до перезагрузки или до тех пор, пока вы не запустите ее снова.
  • sudo service apache2 start: Будет начало служба Apache предполагает, что она была остановлена ранее.
  • service apache2 status: Сообщит вам СТАТУС службы, если она либо включена/ запущена, либо отключена / НЕ запущена.
  • sudo service apache2 restart: Будет перезапуск служба. Это чаще всего используется, когда вы изменили конфигурационный файл. В этом случае, если вы изменили либо конфигурацию PHP, либо конфигурацию Apache. Перезапуск избавит вас от необходимости останавливаться / запускаться с помощью 2 командных строк
  • service apache2: В этом случае, поскольку вы не упомянули ДЕЙСТВИЕ, которое необходимо выполнить для службы, оно покажет вам все опции, доступные для этой конкретной службы. Этот аспект варьируется в зависимости от сервиса, например, в MySQL будет только указано, что в нем отсутствует параметр. Для других сервисов, таких как сетевая служба, в нем будет упомянут небольшой список всех доступных опций.

Systemd

Начиная с Ubuntu 15.04, Upstart будет устаревшим в пользу Systemd. С помощью Systemd для управления службами мы можем сделать следующее (через systemctl action SERVICE узор):

  • sudo systemctl start SERVICE: Используйте его для запуска службы. Не сохраняется после перезагрузки
  • sudo systemctl stop SERVICE: Используйте его, чтобы остановить службу. Не сохраняется после перезагрузки
  • sudo systemctl restart SERVICE: Используйте его для перезапуска службы
  • sudo systemctl reload SERVICE: Если служба поддерживает его, она перезагрузит связанные с ним конфигурационные файлы, не прерывая ни один процесс, использующий службу.
  • systemctl status SERVICE: Показывает статус службы. Указывает, запущена ли служба в данный момент.
  • sudo systemctl enable SERVICE: Включает службу при следующей перезагрузке или при следующем событии запуска. Это сохраняется после перезагрузки.
  • sudo 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 и восстанавливает возможность включения и/или ручного запуска службы.

Выскочка (Устарел С 15.04)

Если мы хотим использовать официальный способ запуска (обратите внимание, что на данный момент не все сервисы были преобразованы в Upstart), мы могли бы использовать следующие команды:

status SERVICE - Это сообщит нам, запущена ли преобразованная служба или нет. Обратите внимание, что это устарело в пользу start, stop, status & restart. Он также сообщит нам, была ли служба еще не преобразована в upstart:

Преобразованная служба обычно выводит текущее состояние (Запуск, выполнение, остановка...) и идентификатор процесса. Неконвертированный сервис выдаст сообщение об ошибке неизвестная работа.

Некоторые ярлыки могут работать только с service команда выше, но не с помощью приведенных ниже команд, если только они не будут на 100% преобразованы в службы запуска:

  • sudo start mysql: Начать
  • sudo stop mysql: Остановись
  • sudo restart mysql: Перезапуск
  • sudo status smbd: Статус

Включение / отключение службы

Чтобы отключить запуск или остановку службы на постоянной основе, вам необходимо:

echo manual | sudo tee /etc/init/SERVICE.override

где строфа manual остановит автоматическую загрузку службы Upstart при следующей загрузке. Любая услуга с .override окончание будет иметь приоритет над исходным служебным файлом. Только после этого вы сможете запустить службу вручную. Если вы этого не хотите, то просто удалите .override.Например:

echo manual | sudo tee /etc/init/mysql.override

Поместит службу MySQL в manual режим. Если вы этого не хотите, после этого вы можете просто сделать

sudo rm /etc/init/mysql.override

и перезагрузитесь, чтобы служба снова запустилась автоматически. Конечно, чтобы включить службу, наиболее распространенным способом является ее установка. Если вы устанавливаете Apache, Nginx, MySQL или другие, они автоматически запускаются по завершении установки и будут запускаться при каждой загрузке компьютера. Отключение, как упоминалось выше, позволит использовать сервис manual.

В настоящее время на самом деле существует три различных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV, Выскочка и systemd. Служба определяется здесь как программа, запускаемая системой в фоновом режиме, в отличие от программы, запускаемой и запускаемой непосредственно пользователем.

SysV

Традиционный способ запуска служб в Linux заключался в размещении скрипта в /etc/init.d, а затем используйте update-rc.d команда (или в дистрибутивах на основе RedHat, chkconfig), чтобы включить или отключить его.

Эта команда использует некоторую слегка сложную логику для создания символических ссылок в /etc/rc#.d, которые управляют порядком запуска служб. Если ты побежишь ls /etc/rc2.d вы можете увидеть порядок, в котором службы будут уничтожены, с таким именем файла, как K##xxxx и начал с имен файлов S##xxxx. Тот ## в S##xxxx означает "начальный заказ" на обслуживание xxxx. И наоборот, в ## в K##xxxx означает заказ на уничтожение для обслуживания xxxx.

Одна из основных проблем с SysV было ли это при загрузке системы, все должно было выполняться последовательно, одно за другим, что очень замедляло время загрузки системы. Были предприняты попытки распараллелить это, но они были случайными, и ими трудно было воспользоваться в полной мере. Это было главной причиной того, что Выскочка был создан.

Выскочка

Upstart использует файлы определения заданий в /etc/init чтобы определить, по каким событиям следует запускать службу. Итак, пока система загружается, upstart обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, привязанной к диску, во время выполнения другой службы, привязанной к процессору, или в то время как сеть ожидает назначения динамического IP-адреса.

Вы можете просмотреть все файлы заданий upstart, выполнив ls /etc/init/*.conf

Позвольте мне просто остановиться здесь и сказать, что если вы не знаете, что такое служба или что она делает, НЕ отключайте ее!

Не все сервисы были преобразованы в upstart. Работая в команде сервера в Canonical в течение последних нескольких месяцев, я работал над несколькими преобразованными файлами заданий, и самое приятное, что это позволяет избавиться от всей "магии" скрипта и просто ввести несколько команд здесь и там, чтобы точно определить, как начать служба, и ничего больше. Но на данный момент существует лишь несколько традиционных сетевых сервисов, таких как кальмар и самба, были преобразованы.

Основан ли сервис на выскочке?

Чтобы выяснить, основана ли служба на запуске, вы можете выполнить команду status:

status servicename

Если это выскочка работа, она покажет это:

$ status statdstatd start/running, process 942

Но если это не так, вы увидите нечто большее, похожее на это:

$ status apache2status: Unknown job: apache2

В этом случае, apache2 не был преобразован в выскочка. Итак, чтобы отключить apache2 ты просто бежишь

sudo update-rc.d apache2 disablesudo service apache2 stop

Отключить службы (задания) в upstart

Определения должностей выскочек не имеют update-rc.d команда. Чтобы отключить задание, вам необходимо отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.

Если вы хотите по-прежнему иметь возможность запускать его вручную, то вам нужно закомментировать start on состояние. Допустим, вы хотите установить самба, но не заставляйте его запускаться автоматически. Вот файл задания (на чистом языке):

description "SMB/CIFS File Server"author      "Steve Langasek <steve.langasek@ubuntu.com>"start on local-filesystemsstop on runlevel [!2345]respawnpre-start script    RUN_MODE="daemons"    [ -r /etc/default/samba ] && . /etc/default/samba    [ "$RUN_MODE" = inetd ] && { stop; exit 0; }    install -o root -g root -m 755 -d /var/run/sambaend scriptexec smbd -F

Отключить самба, вы можете просто поставить # перед "start on local-filesystems". Обратите внимание, что, хотя он не запустится при загрузке, вам все равно нужно остановить его на этот раз с помощью

sudo service smbd stop

Если, однако, вы никогда не захотите самба для начала я бы предложил на самом деле удалить пакет. Однако, если вы хотите, чтобы он был установлен, но не доступен для запуска, вы также можете сделать:

mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled

Отключить службу с помощью start/stop stanza (по состоянию на 11.04)

Начиная с версии upstart, которая будет в 11.04, появилось новое ключевое слово, которое отключает start on и stop on строфы: manual. Итак, еще один способ отключить службу с 11.04 - это сделать:

echo 'manual' | sudo tee /etc/init/mysql.override# command from root shellecho manual >> /etc/init/mysql.override

Вы можете создать override файл для отключения службы вообще без редактирования определения задания, просто поместив manual ключевое слово в нем.

sysv-rc-conf

Попробуйте использовать sysv-rc-conf

sudo apt-get install sysv-rc-conf

и чтобы начать управлять службами, выполните

sudo sysv-rc-conf

Который откроет интерактивное окно, подобное этому

enter image description here

Вы можете дополнительно перемещаться по страницам, используя Ctrl+n для следующей страницы и Ctrl+p для предыдущей страницы. Вы можете включать и отключать службы, выбрав SPACE на желаемых уровнях выполнения.

Вакансии-Администратор

Другой альтернативой было бы Вакансии-Администратор путем установки через

sudo apt-get install jobs-admin

Который также предоставляет графический интерфейс, подобный этому

jobs-admin preview

Чтобы показать больше заданий, вы должны отметить галочкой Показывать Защищенные Рабочие места из его меню.

chkconfig

И третий вариант был бы chkconfig,

sudo apt-get install chkconfig

Его можно использовать через CLI chkconfig, показывающий список включенных/выключенных заданий.Также мы можем просматривать системные службы с помощью chkconfig –list

Службы можно включить с помощью

chkconfig <service> on

Службы можно отключить с помощью

chkconfig <service> off

И мы даже можем добавить наш собственный сервис, используя соответствующий сценарий инициализации с соответствующими заголовками.

chkconfig --add <service>

обновление-rc.d

И еще один вариант может быть передан здесь обновление-rc.d , кратко объясненный здесь.

Обратите внимание, что для Ubuntu Server 12.04, update-rc.d используется вместо chkconfig.

Для тех из нас, кто запускает Ubuntu через ssh, я думаю, что самый лучший вариант - это rcconf - программа на основе текста:

sudo apt-get install rcconfsudo rcconf

alt text

Перемещайтесь с помощью клавиш табуляции и стрелок, нажмите пробел, чтобы включить / отключить. Изменения сохраняются при повторных запусках.

Скриншот, заимствованный из этот пост в блоге, который также показывает sysv-rc-conf - аналогичный инструмент, который также позволяет вам устанавливать уровень выполнения. (Для тех, кто достаточно заботится об уровнях выполнения, чтобы захотеть их изменить :)

К сожалению, rcconf не работает с upstart (сервисы, перечисленные в /etc/init/*), просто с помощью традиционного механизма (ls -l /etc/init.d/* - те, которые не являются символическими ссылками).

К счастью, многие службы, которые важны при подключении к серверу по ssh (Apache, Tomcat, mdadm, boinc-client ...), еще не были перенесены в upstart.

Я выяснил, что вплоть до бионического существует этот графический инструмент, что-то вроде BUM, но совместимый с Upstart: Jobs-Admin

sudo apt-get install jobs-admin

Редактирование существующего файла конфигурации upstart (как описано выше) - не такая уж хорошая идея. Обновленный пакет мог бы предоставить обновленную конфигурацию, и вам пришлось бы повторять свои изменения снова и снова.

Взглянув на man 5 init можно найти более подходящее решение: использовать переопределенную конфигурацию. Краткий пример: Допустим, у нас есть сервис под названием "foobar", поэтому там будет файл с именем /etc/init/foobar.conf с его начальной конфигурацией. Теперь вы не хотите ни удалять этот файл, ни изменять его - но вы также не хотите, чтобы эта служба запускалась? Так что разместите переопределение файл рядом с ним: /etc/init/foobar.override, содержащий (необязательно заголовок с описанием и) вместо start on / stop on линии вы помещаете строку с одним словом: manual. Таким образом, вы говорите выскочке, чтобы она в основном использовала foobar.conf, но переопределите определение запуска , чтобы запускать эту службу только при принудительном применении вручную (через service foobar start в нашем примере).

Существует также Менеджер загрузки.

Устанавливать: sudo apt-get install bum

Дополнительная информация: http://www.marzocca.net/linux/bum.html

enter image description here

Самый простой метод для меня, поскольку я использую только CLI, - это update-rc.d.

Чтобы включить или отключить автозапуск при перезагрузке и т.Д :

sudo update-rc.d <daemon|service> <enable|disable>

Пример:

update-rc.d spamassassin enable

Чтобы остановить или запустить демона или проверить его статус:

sudo service <daemon|service> <start|stop|restart|reload|force-reload|status>

Пример:

sudo service spamassassin status  spamassassin.service - Perl-based spam filter using text analysis   Loaded: loaded (/lib/systemd/system/spamassassin.service; disabled; vendor preset: enabled)   Active: active (running) since Thu 2020-05-21 13:04:10 SAST; 4s ago  Process: 1928 ExecStart=/usr/sbin/spamd -d --pidfile=/var/run/spamd.pid $OPTIONS (code=exited, status=0/SUCCES Main PID: 1949 (spamd)    Tasks: 3 (limit: 2361)   CGroup: /system.slice/spamassassin.service           ├─1949 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/var/run/spamd.pid --create-prefs --max-child           ├─1951 spamd child           └─1952 spamd child`  etc  etc

update-rc.d может сделать немного больше, чем основное, показанное выше:

usage: update-rc.d [-f] <basename> remove       update-rc.d [-f] <basename> defaults       update-rc.d [-f] <basename> defaults-disabled       update-rc.d <basename> disable|enable [S|2|3|4|5]        -f: force

Как всегда, ты исчезаешь. страница человека.

Я использую Стейсер:

Stacer - это системный оптимизатор с открытым исходным кодом и монитор приложений, который помогает пользователям управлять всей системой с различными аспектами, это универсальная системная утилита.

Он также показывает услуги и процессы. Полный набор системных инструментов с графическим интерфейсом.

@MarcelloNuccio: Начиная с Ubuntu 15.04, Upstart устарел в пользу Systemd.

Обратите внимание, что ответ для Ubuntu 14.04 здесь по-прежнему отсутствует.

Для создания сетей, пожалуйста, смотрите: http://askubuntu.com/questions/230698/how-to-restart-the-networking-service

[Это](Enabling/Disabling Services in Fedora 12 | RyuSlash's Blog /) было бы полезно для тех, кто застрял на Fedora 12 и приземлился здесь. В случае, если linkrot chkconfig - это то, что вы ищете.

Программы автозапуска настраиваются в манифестах “автозапуск” или в файлах “*.service” в нескольких местах, а также в “init.d” или “crontab”. Смотрите: upstart - How to start application after login on CentOS? - Unix & Linux Stack Exchange