Вопрос Как включить или отключить службы?
Я читал о том, как включить и отключить службы в Ubuntu, и кажется, что есть разные возможности управлять ими.
Первый найденный мной метод update-rc.d
добавить новые услуги для запуска, /etc/init.d
папку и ее содержимое.
Другой, который я нашел, - это редактировать .conf
файлов в /etc/init
папка.
Каков рекомендуемый способ включения / выключения / добавления служб и почему?
Не могли бы вы дать короткий пуленепробиваемый шаг за шагом пример того, как добавить службу в Ubuntu и включить и отключить ее?
761
2017-12-29 21:03
происхождения
ответы:
Существуют службы, которые могут быть включены / отключены с помощью GUI (например, startup
приложение) или терминал.
Для терминала у вас есть несколько вариантов. Сначала откройте терминал (например, введите «терминал» в тире и откройте его). Затем:
Временные услуги включения / выключения
Остановка и запуск служб временно (Не включает / отключает их для будущих ботинок), вы можете ввести service SERVICE_NAME
, Например:
sudo service apache2 stop
(Будет СТОП службы Apache до перезагрузки или до тех пор, пока вы не запустите его снова).
sudo service apache2 start
(Будет НАЧАЛО служба Apache, предполагая, что она была остановлена раньше.).
service apache2 status
(Скажет вам СТАТУС сервиса, если он включен или запущен отключенным / НЕ работает.).
sudo service apache2 restart
(Будет ПЕРЕЗАПУСК обслуживание. Это чаще всего используется, когда вы изменили конфигурационный файл. В этом случае, если вы изменили конфигурацию PHP или конфигурацию Apache. Перезапуск избавит вас от необходимости останавливаться / запускаться с 2 командами)
service apache2
(В этом случае, поскольку вы не указали ACTION для выполнения для службы, он покажет вам все параметры, доступные для этой конкретной службы.) Этот аспект зависит от службы, например, с MySQL, она только упоминает, что это отсутствует параметр. Для других сервисов, таких как сетевое обслуживание, упоминается небольшой список всех доступных вариантов.
Systemd
Начиная с Ubuntu 15.04, Upstart будет устаревшим в пользу Systemd. С помощью Systemd для управления сервисами мы можем сделать следующее:
systemctl start SERVICE
- Используйте его для запуска службы. Не сохраняется после перезагрузки
systemctl stop SERVICE
- Используйте его, чтобы остановить службу. Не сохраняется после перезагрузки
systemctl restart SERVICE
- Используйте его для перезапуска службы
systemctl reload SERVICE
- Если служба поддерживает его, он перезагрузит связанные с ним файлы конфигурации, не прерывая процесс, который использует эту службу.
systemctl status SERVICE
- Показывает статус службы. Указывает, работает ли служба в настоящий момент.
systemctl enable SERVICE
- Включает службу, при следующей перезагрузке или в следующем стартовом событии. Он сохраняется после перезагрузки.
systemctl disable SERVICE
- Отключает службу при следующей перезагрузке или в следующем событии остановки. Он сохраняется после перезагрузки.
systemctl is-enabled SERVICE
- Проверьте, настроена ли служба на запуск или нет при следующей перезагрузке.
systemctl is-active SERVICE
- Проверьте, активна ли служба.
systemctl show SERVICE
- Показать всю информацию об услуге.
sudo systemctl mask SERVICE
- Полностью отключите службу, связав ее с /dev/null
; вы не можете запустить сервис вручную или включить службу.
sudo systemctl unmask SERVICE
- Удаляет ссылку на /dev/null
и восстанавливает возможность включения и / или запуска вручную службы.
UPSTART (Устаревший с 15.04)
Если мы хотим использовать официальный способ Upstart (обратите внимание, что на данный момент не все службы были преобразованы в Upstart), мы могли бы использовать следующие команды:
status SERVICE
- Это скажет нам, работает ли преобразованная служба или нет. Обратите внимание, что это устарело в пользу start
, stop
, status
& restart
, Он также сообщит нам, если служба еще не была преобразована в выскочку:
Преобразованная служба обычно выводит текущий статус (запуск, запуск, остановка ...) и идентификатор процесса. Непереведенное обслуживание может привести к ошибке неизвестная работа,
Некоторые ярлыки могут работать только с service
выше, но не с приведенными ниже командами, если они не преобразуются на 100% в службы выскочки:
НАЧАЛО - sudo start mysql
СТОП - sudo stop mysql
ПЕРЕЗАПУСК - sudo restart mysql
ПОЛОЖЕНИЕ ДЕЛ - sudo status smbd
Включение / отключение службы
Чтобы переключить службу на запуск или остановку навсегда, вам необходимо:
echo manual | sudo tee /etc/init/SERVICE.override
где строфа manual
остановит Upstart от автоматической загрузки службы при следующей загрузке. Любая услуга с .override
окончание будет иметь приоритет над исходным файлом службы. После этого вы сможете запустить сервис вручную. Если вы этого не хотите, просто удалите .override
,
Например:
echo manual | sudo tee /etc/init/mysql.override
Включит сервис MySQL в manual
Режим. Если вы этого не хотите, вы можете просто сделать
sudo rm /etc/init/mysql.override
и Перезагрузка для возобновления автоматического запуска службы. Конечно, чтобы включить службу, наиболее распространенным способом является ее установка. Если вы устанавливаете Apache, Nginx, MySQL или другие, они автоматически запускаются после завершения установки и запускаются каждый раз при загрузке компьютера. Отключение, как указано выше, будет использовать сервис manual
,
757
2017-12-29 21:26
В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV, Выскочка а также Systemd, Служба определяется здесь как программа, выполняемая системой в фоновом режиме, в отличие от одной запущенной и выполняемой непосредственно пользователем.
SysV
Традиционным способом запуска служб в Linux было размещение сценария в /etc/init.d
, а затем используйте update-rc.d
(или в дистрибутивах на основе RedHat, chkconfig
), чтобы включить или отключить его.
Эта команда использует некоторую слегка сложную логику для создания символических ссылок в /etc/rc#.d
, которые контролируют порядок запуска услуг. Если вы запустите ls /etc/rc2.d
вы можете увидеть, как будут убиты службы с именем файла, например K##xxxx
и начинаются с имен файлов S##xxxx
, ##
в S##xxxx
означает «начальный заказ» для обслуживания xxxx
, И наоборот, ##
в K##xxxx
означает заказ на убийство для службы xxxx
,
Одна из основных проблем с SysV было то, что при загрузке системы, все должно было быть сделано в серийном режиме, одно за другим, делая время загрузки системы очень медленным, Были предприняты попытки распараллелить это, но они были случайными и трудными в полной мере использовать. Это была главная причина, по которой Выскочкабыл создан.
Выскочка
Upstart использует файлы определения заданий в /etc/init
определить, на каких событиях должна запускаться служба. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, привязанная к процессору, запускается или пока сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, выполнив ls /etc/init/*.conf
Позвольте мне просто остановиться здесь и сказать, что если вы не знаете, что такое услуга или что она делает, НЕ ОТКЛЮЧАЙТЕ ее!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. Но пока только несколько традиционных сетевых сервисов, таких как кальмар а также самба, были преобразованы.
Является ли служба выскочкой?
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду status:
status servicename
Если это выскочка работа, он покажет это:
$ 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
Отключить службы (задания) в выскочке
У определения стартовой задачи нет update-rc.d
команда. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите, чтобы все еще можно было вручную запустить его, вам необходимо закомментировать start on
состояние. Предположим, вы хотите установить самба, но не запускать его автоматически. Вот файл задания (в 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
Отключить самба, вы можете просто положить #
напротив "start on local-filesystems
«Обратите внимание, что пока он не будет загружаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы никогда не захотите самба чтобы начать, я бы предложил на самом деле удалить пакет. Если, однако, вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Отключите службу, используя старт / стоп-строфу (с 11.04)
Начиная с версии upstart, которая будет в 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
ключевое слово в нем.
335
2018-01-06 18:25
SysV-RC-конф
Попробуйте использовать SysV-RC-конф
sudo apt-get install sysv-rc-conf
и начать управлять услугами, выполнить
sudo sysv-rc-conf
Что вызовет интерактивное окно, подобное этому

Вы также можете перемещаться по страницам, используя Ctrl+n
для следующей страницы и Ctrl+p
для предыдущей страницы. Вы можете включить или отключить службы, выбрав SPACE
на требуемых уровнях выполнения.
Работа-Admin
Другой альтернативный вариант Работа-Admin путем установки через
sudo apt-get install jobs-admin
Что также предоставляет графический интерфейс

Чтобы показать больше заданий, вам нужно отметить Показать защищенные задания из своего меню.
chkconfig
И третий вариант chkconfig,
sudo apt-get install chkconfig
Он может использоваться через CLI chkconfig
, показывающий список заданий On / Off.
Также мы можем просматривать системные службы, используя chkconfig –list
Услуги можно включить, используя
chkconfig <service> on
Службы можно отключить, используя
chkconfig <service> off
И мы можем даже добавить наш собственный сервис, используя правильный скрипт инициализации с соответствующими заголовками.
chkconfig --add <service>
обновление-rc.d
И еще один вариант можно отнести здесь update-rc.d , кратко объяснил Вот,
Обратите внимание, что для Ubuntu Server 12.04, update-rc.d
используется вместо chkconfig.
121
2018-06-28 18:00
Для тех из нас, кто управляет Ubuntu по ssh, я думаю, что самый лучший вариант rcconf
- текстовая программа:
sudo apt-get install rcconf
sudo rcconf

Перейдите со вкладками и клавишами со стрелками, нажмите пробел, чтобы включить / отключить. Изменения повторяются при перезапуске.
Скриншот, заимствованный из этот блогпост, который также показывает sysv-rc-conf
- аналогичный инструмент, который также позволяет установить уровень запуска. (Для тех, кто достаточно заботится о уровнях выполнения, чтобы изменить их :)
К сожалению, rcconf не работает с выскочкой (услуги, перечисленные в /etc/init/*
), только с традиционным механизмом (ls -l /etc/init.d/*
- те, которые не являются символическими ссылками).
К счастью, многие сервисы, которые имеют значение при подключении к серверу (Apache, Tomcat, mdadm, boinc-client ...), еще не были перемещены в режим выскочки.
48
2018-01-06 18:44
Я узнал, что есть этот инструмент графического интерфейса, что-то вроде BUM, но совместимого с Upstart:
18
2018-05-21 10:27
Редактирование существующего файла конфигурации выскочка (как описано выше) не является такой хорошей идеей. Обновленный пакет может содержать обновленную конфигурацию, и вам приходилось повторять свои изменения снова и снова.
Взглянув на man 5 init
можно найти более подходящее решение: с помощью переопределенной конфигурации. Короткий пример: скажем, у нас есть служба под названием «foobar», поэтому будет файл с именем /etc/init/foobar.conf
с его выскочкой конфигурации. Теперь вы не хотите удалять этот файл или изменять его, но вы не хотите, чтобы эта служба запускалась? Поэтому переопределение рядом с ним: /etc/init/foobar.override
, содержащий (необязательно заголовок с описанием и) вместо start on
/ stop on
линии вы помещаете строку одним словом: manual
, Таким образом, вы говорите выскочке в основном использовать foobar.conf
, но переопределить определение запуска только для запуска этой службы при ручном принуждении (через service foobar start
в нашем примере).
12
2018-06-30 20:27
Существует также Менеджер загрузки,
Установить: sudo apt-get install bum
Дополнительная информация: http://www.marzocca.net/linux/bum.html

8
2018-05-20 14:47