Отключить Nginx при запуске системы [duplicate]

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

Первый найденный мной метод - update-rc.d, чтобы добавить новые сервисы к запуску, что направлена ​​на папку /etc/init.d и ее содержимое.

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

Какой рекомендуемый способ включить / disable / add services и почему?

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

766
задан 20 May 2014 в 19:54

18 ответов

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

743
ответ дан 31 July 2018 в 23:01

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

743
ответ дан 2 August 2018 в 17:53

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

744
ответ дан 3 August 2018 в 20:16

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

746
ответ дан 5 August 2018 в 05:01

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

746
ответ дан 6 August 2018 в 22:06

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

746
ответ дан 9 August 2018 в 02:34

В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV , Upstart и 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 .

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

Определения заданий 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 в нем.

747
ответ дан 14 August 2018 в 20:44

Есть службы, которые можно включить / отключить с помощью 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, он только упоминает, что отсутствует параметр. Для других сервисов, таких как сетевое обслуживание, упоминается небольшой список всех доступных опций.

SYSTEMD

Начиная с 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 (устарела с 15.04)

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

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

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

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

  • START - sudo start mysql
  • STOP - sudo stop mysql
  • RESTART - sudo restart mysql
  • STATUS - 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.

746
ответ дан 16 August 2018 в 11:22

Для тех из нас, кто запускает 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 ...) пока еще не вышли на сцену.

48
ответ дан 18 July 2018 в 12:22

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

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

12
ответ дан 18 July 2018 в 12:22

Я узнал, что есть этот инструмент GUI, что-то вроде BUM, но совместимый с Upstart:

Jobs-Admin sudo apt-get install jobs-admin
18
ответ дан 18 July 2018 в 12:22

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

SysV

Традиционный способ запуска служб в 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

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

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

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

Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. На данный момент только несколько традиционных сетевых сервисов, таких как Upstart и Upstart , были преобразованы.

Является ли служба выскочкой? [ ! d18]

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

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

Отключить службы (задания) в 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 ключевое слово в нем.

331
ответ дан 18 July 2018 в 12:22

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

Для установки: sudo apt-get install bum

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

7
ответ дан 18 July 2018 в 12:22

Для тех из нас, кто запускает 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 ...) пока еще не вышли на сцену.

48
ответ дан 24 July 2018 в 19:57
  • 1
    Это все еще работает с выскочкой? – oKtosiTe 7 January 2011 в 00:18
  • 2
    К сожалению нет. Но он работал во всех случаях, которые я хотел изменить: работа с выскочкой - это, в основном, вещи, которые я никогда не хочу отключать, - аппаратные часы, демона журнала, сеть и т. Д. (На сервере Ubuntu, по крайней мере). Но это то, о чем нужно знать (я не был :), я обновил сообщение. – j-g-faustus 7 January 2011 в 00:59
  • 3
    К сожалению, mysql был преобразован в выскочку. И это сервис, который я использую только при выполнении какого-либо проекта. – MestreLion 27 May 2011 в 08:12
  • 4
    В Ubuntu 12.04 есть ошибка с rcconf, которая предотвращает запуск программы. Чтобы решить проблему, вам нужно установить пакет диалога. – devius 3 June 2012 в 03:08
  • 5
    на сервере ubuntu: Package chkconfig is not available, but is referred to by another package. – pwned 22 April 2013 в 18:16
  • 6
    @pwned Вы можете редактировать и публиковать обновленную информацию о версии сервера. Благодарю вас. – atenz 26 April 2013 в 19:53
  • 7
    Я сделал то, что вы предложили, теперь для экспертной оценки. – pwned 26 April 2013 в 21:44
  • 8
    jobs-admin не позволяет изменять задания (Ubuntu 14.04), создавая вместо этого отчет о сбое ;-) – Sadi 20 May 2014 в 19:38
  • 9
    Поскольку этот ответ был написан, update-rc.d был изменен, а некоторые из его устаревших функциональных возможностей были удалены . Ошибка Debian # 727735 отмечает, что rcconf не был изменен для соответствия. И нет, rcconf тоже не работает с systemd, поэтому не применимо ни к одной из систем инициализации по умолчанию для Ubuntu Linux в течение последнего десятилетия. – JdeBP 17 November 2015 в 13:35
  • 10
    sysv-rc-conf не подходит для использования с upstart или systemd, он явно относится только к старой системе System 5 rc, которая не была стандартной по умолчанию для Ubuntu Linux в течение почти десятилетия. Ошибка в Debian # 791689 подтверждает это и спрашивает, почему она не была помечена как конфликтующая с systemd. – JdeBP 17 November 2015 в 13:41

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

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

12
ответ дан 24 July 2018 в 19:57

Я узнал, что есть этот инструмент GUI, что-то вроде BUM, но совместимый с Upstart:

Jobs-Admin sudo apt-get install jobs-admin
18
ответ дан 24 July 2018 в 19:57
  • 1
    Но это слишком просто и не позволяет изменять «защищенные задания», (что это за работа? У Apple есть рабочие места, у операционной системы есть демоны!) – kakaz 20 December 2013 в 02:06
  • 2
    Я даже не позволяю изменять «незащищенные задания». (Ubuntu 14.04), создавая вместо этого отчет о сбое ;-) – Sadi 20 May 2014 в 19:37

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

SysV

Традиционный способ запуска служб в 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

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

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

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

Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. На данный момент только несколько традиционных сетевых сервисов, таких как Upstart и Upstart , были преобразованы.

Является ли служба выскочкой? [ ! d18]

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

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

Отключить службы (задания) в 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

Отключить службу, используя старт / стоп stanza (начиная с 11.04)

Начиная с версия выскочка, которая будет в 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 ключевое слово в нем.

331
ответ дан 24 July 2018 в 19:57
  • 1
    Похоже, 11.04 тоже переопределил. Поэтому echo manual >> /etc/init/<service>.override предпочтительнее, так как он оставляет исходный файл .conf филе неповрежденным. Во всяком случае, его по-прежнему стыдно, что для такого базового разрешения / отключения потребовалось 3 года, и для этого нет графического интерфейса. – MestreLion 27 May 2011 в 08:09
  • 2
    update-rc.d - это то, что действительно важно – Tim 2 December 2012 в 15:26
  • 3
    кажется, гораздо более оригинальной темой, чем ответ, который был помечен как дефинитивный ответ на исходный вопрос. Благодаря! :) – Henning 6 April 2014 в 16:11
  • 4
    В моем случае файл /etc/init/ssh.conf существует, но status ssh и status sshd оба говорят «Неизвестное задание». Этот ответ, похоже, не затрагивает такую ​​возможность? – Brian Z 7 June 2015 в 06:33
  • 5
    status ssh дает мне «Неизвестную работу», но service ssh status работает для меня – ptim 27 March 2016 в 04:00
  • 6
    Вам нужно добавить .service к каждой команде? systemctl mongod status работал отлично. – Dan Dascalescu 10 September 2016 в 06:36
  • 7
    @DanDascalescu нет, вы не можете, но позвольте мне уточнить, что там. – Luis Alvarado♦ 11 September 2016 в 01:19
  • 8
    Должен ли файл .override быть помещен в /etc/init.d/, то есть где находится служба? – Obi Wan - PallavJha 9 December 2016 в 14:13
  • 9
    Почему Upstart не рекомендуется в 15.04? каков правильный способ запуска скриптов при запуске / перезапуске в ubuntu 16.04 или новее? – Kamalakannan J 7 January 2017 в 00:18
  • 10
    @ KamalakannanJ Вы использовали уровни rc? (например, /etc/rc0.d) или /etc/rc.local? – Luis Alvarado♦ 7 January 2017 в 02:27

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

Для установки: sudo apt-get install bum

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

7
ответ дан 24 July 2018 в 19:57
  • 1
    Не забудьте проверить флажок «Дополнительно». кнопка. – not2qubit 4 February 2016 в 06:10

Другие вопросы по тегам:

Похожие вопросы: