Одним из важных для системного администратора является то, как настроить службу при загрузке, чтобы при перезагрузке сервера они запускались автоматически.
Причин перезагрузки сервера может быть несколько, в том числе следующие.
- Планируется еженедельно, ежемесячно
- Неожиданно из-за проблем с аппаратным обеспечением/ядром
Выполнив правильную настройку, вам не придется запускать их вручную при каждой перезагрузке.
Немного автоматизации. Не так ли?
Следующие примеры относятся к двум популярным дистрибутивам, протестированным на 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.
Если вам нужно отключить службу автозапуска, вы можете использовать следующие команды
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] ~]#
Как видите, статус отключен, что означает, что он не настроен для запуска при загрузке.
Давайте включим запуск 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.
Перейдите сюда, если вы хотите установить/обновить PHP-FPM 5.6 на CentOS 6.x.
Понравилось читать статью? Как насчет того, чтобы поделиться с миром?