Как автоматически запускать службы при загрузке в Linux?

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

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

  • Планируется еженедельно, ежемесячно
  • Неожиданно из-за проблем с аппаратным обеспечением/ядром

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

Немного автоматизации. Не так ли?

Следующие примеры относятся к двум популярным дистрибутивам, протестированным на DigitalOcean серверы.

CentOS или RHEL 6.x

В следующем примере я взял HTTP-сервер Apache, но процедура остается той же для любых других служб, которые вы хотите запускать при загрузке в версии Red Hat Enterprise Linux (RHEL) или CentOS 6.

Вы можете оставить любое имя файла сценария, и здесь я сохранил httpd

  • Станьте пользователем root на вашем сервере Linux
  • Создайте или скопируйте свой скрипт в /etc/init.d/
[[email protected] init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[[email protected] init.d]#

Мы будем использовать утилиту chkconfig, которая доступна по умолчанию в Linux или CentOS.

  • Добавьте скрипт для запуска при загрузке с помощью chkconfig с параметром –add
[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on
  • Подтвердите, что скрипт успешно добавлен с помощью —list
[[email protected] init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] init.d]#

Это все! Скрипт httpd будет вызываться для запуска служб при загрузке Linux.

  Как играть в Bayonetta в Linux

Если вам нужно отключить службу автозапуска, вы можете использовать следующие команды

chkconfig httpd off
chkconfig --del httpd

RHEL или CentOS 7.x/8.x

Процедура настройки служб при загрузке в RHEL 7 немного отличается от RHEL 6. Для управления службами используется systemd.

Большая часть программного обеспечения, такого как скрипты Apache, PHP, MySQL, Nginx, добавляется в сервисы при его установке.

Возьмем пример PHP-FPM.

Прежде всего, давайте посмотрим на статус php-fpm (это предполагает, что у вас уже есть скрипты в /usr/lib/systemd/system/)

[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead) 
[[email protected] ~]#

Как видите, статус отключен, что означает, что он не настроен для запуска при загрузке.

  Как сохранить заметки в Linux с помощью индикаторных заметок

Давайте включим запуск php-fpm при загрузке с помощью systemctl

[[email protected] ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[[email protected] ~]#

Теперь посмотрим статус

[[email protected] ~]# systemctl status php-fpmphp
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)    Active: inactive (dead) 
[[email protected] ~]#

php-fpm настроен на запуск при загрузке. Давайте проверим это, перезагрузив сервер.

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

systemctl disable php-fpm

Вы также можете прочитать этот пост, объясняющий systemd и автозапуск служб при загрузке.

Убунту

Настройка автозапуска служб в Ubuntu немного отличается. Допустим, имя скрипта Nginx.

  • Войдите на сервер Ubuntu с правами root
  • Скопируйте скрипт в папку /etc/init.d/
  • Выполните приведенную ниже команду
update-rc.d nginx defaults
  • Перезагрузите сервер, чтобы убедиться, что службы запущены.
  Как контролировать пропускную способность сети в Linux

Это помогло мне, и я верю, что это будет полезно и для вас.

Системное администрирование всегда весело и сложно, и если вы хотите повысить свою карьеру в этом, вы можете обратиться к этому Удеми курс.

Затем узнайте, как найти причину внезапной перезагрузки Linux.
Перейдите сюда, если вы хотите установить/обновить PHP-FPM 5.6 на CentOS 6.x.

Понравилось читать статью? Как насчет того, чтобы поделиться с миром?