В CentOS для добавления сервисов (приложений) в автозагрузку существует служба chkconfig. При условии, что эти сервисы установлены из репозитория командой yum.
Чтобы включить автозагрузку, то есть чтобы приложение запустилось при старте сервера (при загрузке операционной системы) необходимо выполнить следующую команду:
chkconfig имя_службы on
Однако возможности команды chkconfig этим не ограничены. Для начала проверим включен ли в автозагрузку сервер, к примеру, nginx:
chkconfig --list nginx nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:on
И в ответе сервера мы видим несколько уровней выполнения. Для одних nginx включен, для других нет.
Уровни выполнения в CentOS
Уровень 0 — остановка системы (halt) — работа системы должна быть прекращена;
Уровень 1 — однопользовательский режим работы — система инициализирует минимум служб и даёт единственному пользователю (как правило, суперпользователю) без проведения аутентификации командную строку. Как правило, этот режим используется для восстановления системы;
Уровень 2 — многопользовательский режим — пользователи могут работать на разных терминалах, вход в систему с процессом аутентификации;
Уровень 3 — многопользовательский сетевой режим — в отличие от предыдущего уровня, осуществляется настройка сети и запускаются различные сетевые службы;(используется преимущественно на серверных системах)
Уровень 4 — не имеет стандартного толкования и практически не используется;
Уровень 5 — запуск графической подсистемы — по сравнению с уровнем 3 производится также старт графической подсистемы X11, и вход в систему осуществляется уже в графическом режиме;
Уровень 6 — перезагрузка системы — при включении этого режима останавливаются все запущенные программы и производится перезагрузка.
Чтобы узнать текущий уровень выполнения достаточно выполнить команду runlevel.
runlevel N 3
В моем примере сервер находится на уровне выполнения 3, что является нормальным режимом его работы.
Автозагрузка на конкретные уровни выполнения Linux
По-умолчанию, команда chkconfig прописывает сервисы в автозагрузку по уровням 2, 3, 4, 5. Если необходимо изменить такой порядок, то следуют использовать следующие параметры:
chkconfig --level 35 nginx on
Теперь команда chkconfig добавит демон nginx только на уровни 3 и 5.
Краткий список полезного применения утилиты chkconfig
Добавить в автозагрузку
chkconfig --add имя_службы
Проверить включена ли служба в автозагрузку.
chkconfig --list имя_службы
Включить службу на всех уровнях (2, 3, 4, 5)
chkconfig имя_службы on
Включить службу на определенных уровнях
chkconfig --level 35 имя_службы on
Выключить службу на всех уровнях (2, 3, 4, 5)
chkconfig имя_службы off
Выключить службу на определенных уровнях
chkconfig --level 35 имя_службы off
Удалить службу из автозагрузки
chkconfig --del имя_службы