Я прочитал о том, как включить и отключить службы в Ubuntu, и кажется, что есть разные возможности для их управления.
Первый найденный мной метод - update-rc.d, чтобы добавить новые сервисы к запуску, что направлена на папку /etc/init.d и ее содержимое.
Другой, который я нашел, - это отредактировать .conf файлы в папке /etc/init.
Какой рекомендуемый способ включить / disable / add services и почему?
Не могли бы вы дать короткий пуленепробиваемый шаг за шагом пример того, как добавить службу в Ubuntu и включить и отключить ее?
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и systemd . Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в 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 .
Upstart использует файлы определения заданий в /etc/init
, чтобы определить, в каких событиях должна быть служба начал. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или в то время, когда сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но на данный момент только несколько традиционных сетевых сервисов, таких как squid и samba , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это задание upstart , это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2
не был преобразован в выскочка . Таким образом, чтобы отключить apache2
, вы просто запустите
sudo update-rc.d apache2 disable
sudo service apache2 stop
Определения заданий Upstart не имеют команды update-rc.d
. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам нужно закомментировать условие start on
. Предположим, вы хотите установить samba , но не запускать его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить #
перед «start on local-filesystems
». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы не хотите запускать samba Я бы предложил на самом деле удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on
и stop on
: manual
. Так что еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override
для отключения службы без редактирования определения задания вообще, просто поместив manual
в нем.
Есть службы, которые можно включить / отключить с помощью GUI (например, приложения startup
) или терминала.
Для терминала у вас есть несколько параметров. Сначала откройте терминал (например, введите «терминал» в тире и откройте его). Затем:
Чтобы остановить и запустить службы временно (Не включает / отключает их для будущих ботов), вы можете ввести service SERVICE_NAME
. Например:
sudo service apache2 stop
(Остановит службу Apache до перезагрузки или пока вы не запустите ее снова). sudo service apache2 start
(ЗАПУСТИТЬ сервис Apache, предположив, что он был остановлен раньше.). service apache2 status
(скажет вам статус службы, если он включен или включен / запуск отключенного / НЕ работает.). sudo service apache2 restart
(Будет ли RESTART сервис.Это наиболее часто используется, когда вы изменили конфигурационный файл. В этом случае, если вы изменили конфигурацию PHP или конфигурацию Apache. от остановки / начала с 2 командных строк) service apache2
(В этом случае, поскольку вы не указали ACTION для выполнения службы, он покажет вам все параметры, доступные для этой конкретной службы .) Этот аспект варьируется в зависимости от службы, например, с MySQL, он только упоминает, что отсутствует параметр. Для других сервисов, таких как сетевое обслуживание, упоминается небольшой список всех доступных опций. Начиная с Ubuntu 15.04, Upstart будет устаревшим в пользу of 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 (обратите внимание, что на данный момент не все службы были преобразованы в Upstart), мы могли бы использовать следующие команды:
status SERVICE
- Это скажет нам, работает ли преобразованная служба или нет. Обратите внимание, что это устарело в пользу start
, stop
, status
& amp; restart
. Он также сообщит нам, если служба еще не была преобразована в выскочку:
Преобразованная служба обычно выводит текущее состояние (запуск, запуск, остановка ...) и идентификатор процесса. Некорректная служба даст ошибку об неизвестном задании.
Некоторые ярлыки могут работать только с командой service
выше, но не с приведенными ниже командами, если они не будут на 100% конвертированы в службы upstart:
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
.
systemd
работает с Ubuntu 18.04.
– Doktor J
24 September 2018 в 17:23
Для тех из нас, кто запускает Ubuntu поверх ssh, я думаю, что наиболее приятным вариантом является rcconf - текстовая программа:
sudo apt-get install rcconf
sudo rcconf
Навигация с вкладкой и стрелкой клавиши, нажмите пробел, чтобы включить / отключить. Изменения сохраняются через перезагрузки.
Снимок экрана, взятый из этого blogpost, который также показывает sysv-rc-conf - аналогичный инструмент, который также позволяет установить уровень запуска. (Для тех, кто достаточно заботится о уровнях выполнения, чтобы пожелать изменить их :)
К сожалению, rcconf не работает с выскочкой (услуги, перечисленные в /etc/init/*), только с традиционным механизмом (ls -l /etc/init.d/* - те, которые не являются символическими ссылками).
К счастью, многие из сервисов, которые имеют значение при подключении к серверу (Apache, Tomcat, mdadm, boinc-client ...) пока еще не вышли на сцену.
Редактирование существующего файла конфигурации выскочка (как описано выше) не является такой хорошей идеей. Обновленный пакет мог бы предоставить обновленную конфигурацию, и вам приходилось повторять свои изменения снова и снова.
Посмотрев на man 5 init, вы найдете более подходящее решение: с помощью переопределенной конфигурации. Краткий пример: предположим, что у нас есть служба под названием «foobar», поэтому будет файл с именем /etc/init/foobar.conf с его настройкой выскочки. Теперь вы не хотите удалять этот файл или изменять его, но вы не хотите, чтобы эта служба запускалась? Поэтому поместите над ним файл переопределения: /etc/init/foobar.override, содержащий (необязательно заголовок с описанием и), вместо строк start on / stop on вы поместите строку с одним словом: manual. Таким образом, вы скажете выскочку в основном использовать параметр foobar.conf, но переопределите определение запуска только для запуска этой службы при ручном принуждении (через service foobar start в нашем примере).
Я узнал, что есть этот инструмент GUI, что-то вроде BUM, но совместимый с Upstart:
Jobs-Adminsudo apt-get install jobs-admin
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV, Upstart и systemd. Служба здесь определена как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в Linux должен был разместить сценарий в /etc/init.d, а затем использовать команду update-rc.d (или в дистрибутивах на основе RedHat, chkconfig), чтобы включить или отключить ее.
В этой команде используется немного сложная логика для создания символических ссылок в /etc/rc#.d, которые контролируют порядок запуска служб. Если вы запустите ls /etc/rc2.d, вы увидите порядок, в котором будут убиты службы с именем файла, например K##xxxx, и начнется с имен файлов S##xxxx. [F16] в S##xxxx означает «начальный порядок» для обслуживания xxxx. Наоборот, ## в K##xxxx означает порядок уничтожения для службы xxxx.
Одна из основных проблем с SysV заключалась в том, что при загрузке системы все должно было быть сделанные в последовательном порядке, одно за другим, что делает время загрузки системы очень медленным. Были предприняты попытки распараллелить это, но они были случайными и трудными в полной мере использовать. Это была основная причина создания Upstart.
Upstart использует файлы определения заданий в /etc/init для определения того, какие события должна запускаться служба. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или пока сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. На данный момент только несколько традиционных сетевых сервисов, таких как Upstart и Upstart , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду статуса:
status servicename
Если это выскочка, это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2 не был преобразован в upstart . Таким образом, чтобы отключить apache2, вы просто запускаете
sudo update-rc.d apache2 disable
sudo service apache2 stop
У определений заданий стартового разряда нет команды update-rc.d. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите по-прежнему запустить его вручную, вам нужно прокомментировать условие start on. Предположим, вы хотите установить samba, но не запускайте его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить # перед «start on local-filesystems». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы никогда не хотите, чтобы samba запускался, я бы предложил фактически удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on и stop on: manual. Таким образом, еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override, чтобы отключить службу без редактирования определения задания вообще, просто поместив manual ключевое слово в нем.
Существует также диспетчер загрузки.
Для установки: sudo apt-get install bum
Дополнительная информация: http://www.marzocca.net/linux/bum.html
Для тех из нас, кто запускает Ubuntu поверх ssh, я думаю, что наиболее приятным вариантом является rcconf - текстовая программа:
sudo apt-get install rcconf
sudo rcconf
Навигация с вкладкой и стрелкой клавиши, нажмите пробел, чтобы включить / отключить. Изменения сохраняются через перезагрузки.
Снимок экрана, взятый из этого blogpost, который также показывает sysv-rc-conf - аналогичный инструмент, который также позволяет установить уровень запуска. (Для тех, кто достаточно заботится о уровнях выполнения, чтобы пожелать изменить их :)
К сожалению, rcconf не работает с выскочкой (услуги, перечисленные в /etc/init/*), только с традиционным механизмом (ls -l /etc/init.d/* - те, которые не являются символическими ссылками).
К счастью, многие из сервисов, которые имеют значение при подключении к серверу (Apache, Tomcat, mdadm, boinc-client ...) пока еще не вышли на сцену.
Редактирование существующего файла конфигурации выскочка (как описано выше) не является такой хорошей идеей. Обновленный пакет мог бы предоставить обновленную конфигурацию, и вам приходилось повторять свои изменения снова и снова.
Посмотрев на man 5 init, вы найдете более подходящее решение: с помощью переопределенной конфигурации. Краткий пример: предположим, что у нас есть служба под названием «foobar», поэтому будет файл с именем /etc/init/foobar.conf с его настройкой выскочки. Теперь вы не хотите удалять этот файл или изменять его, но вы не хотите, чтобы эта служба запускалась? Поэтому поместите над ним файл переопределения: /etc/init/foobar.override, содержащий (необязательно заголовок с описанием и), вместо строк start on / stop on вы поместите строку с одним словом: manual. Таким образом, вы скажете выскочку в основном использовать параметр foobar.conf, но переопределите определение запуска только для запуска этой службы при ручном принуждении (через service foobar start в нашем примере).
Я узнал, что есть этот инструмент GUI, что-то вроде BUM, но совместимый с Upstart:
Jobs-Adminsudo apt-get install jobs-admin
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV, Upstart и systemd. Служба здесь определена как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в Linux должен был разместить сценарий в /etc/init.d, а затем использовать команду update-rc.d (или в дистрибутивах на основе RedHat, chkconfig), чтобы включить или отключить ее.
В этой команде используется немного сложная логика для создания символических ссылок в /etc/rc#.d, которые контролируют порядок запуска служб. Если вы запустите ls /etc/rc2.d, вы увидите порядок, в котором будут убиты службы с именем файла, например K##xxxx, и начнется с имен файлов S##xxxx. [F16] в S##xxxx означает «начальный порядок» для обслуживания xxxx. Наоборот, ## в K##xxxx означает порядок уничтожения для службы xxxx.
Одна из основных проблем с SysV заключалась в том, что при загрузке системы все должно было быть сделанные в последовательном порядке, одно за другим, что делает время загрузки системы очень медленным. Были предприняты попытки распараллелить это, но они были случайными и трудными в полной мере использовать. Это была основная причина создания Upstart.
Upstart использует файлы определения заданий в /etc/init для определения того, какие события должна запускаться служба. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или пока сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. На данный момент только несколько традиционных сетевых сервисов, таких как Upstart и Upstart , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду статуса:
status servicename
Если это выскочка, это покажет это:
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2 не был преобразован в upstart . Таким образом, чтобы отключить apache2, вы просто запускаете
sudo update-rc.d apache2 disable
sudo service apache2 stop
У определений заданий стартового разряда нет команды update-rc.d. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите по-прежнему запустить его вручную, вам нужно прокомментировать условие start on. Предположим, вы хотите установить samba, но не запускайте его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-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/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить # перед «start on local-filesystems». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы никогда не хотите, чтобы samba запускался, я бы предложил фактически удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on и stop on: manual. Таким образом, еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override, чтобы отключить службу без редактирования определения задания вообще, просто поместив manual ключевое слово в нем.
Существует также диспетчер загрузки.
Для установки: sudo apt-get install bum
Дополнительная информация: http://www.marzocca.net/linux/bum.html