Автозагрузка в CentOS


Собственно в CentOS процесс загрузки работает по принципу System V и расписан в файле /etc/inittab, точнее расписано то как процесс INIT отрабатывает уровни загрузки. В системе фалы загрузки находятся в каталоге /etc/rc.d и носят названия rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, и rc6.d. Пользователи могут размещать файлы в этих каталогах которые будут контролировать запуск сервисов в системе.В свою очередь эти фалы линкуются на каталог /etc/rc.d/init.d и содержащиеся в них скрипты запуска процессов. В этой связи для запуска сервиса необходимо создать полноценный файл запуска сервиса в /etc/init.d, после чего задать символический линк на него из папки соответствующей тому уровню запуска, на котором необходимо стартовать данный сервис. Файлик запуска сервиса будет выглядеть следующим образом, хотя можно расписать все пару строк просто строкой запуска сервиса:

#!/bin/bash
 #
 # chkconfig: 35 90 12
 # description: Foo server
 #

# Get function from functions library
 . /etc/init.d/functions

# Start the service FOO
 start() {
 initlog -c “echo -n Starting FOO server: ”
 /path/to/FOO &
 ### Create the lock file ###
 touch /var/lock/subsys/FOO
 success $”FOO server startup”
 echo
 }

# Restart the service FOO
 stop() {
 initlog -c “echo -n Stopping FOO server: ”
 killproc FOO
 ### Now, delete the lock file ###
 rm -f /var/lock/subsys/FOO
 echo
 }

### main logic ###
 case “$1? in
 start)
 start
 ;;
 stop)
 stop
 ;;
 status)
 status FOO
 ;;
 restart|reload|condrestart)
 stop
 start
 ;;
 *)
 echo $”Usage: $0 {start|stop|restart|reload|status}”
 exit 1
 esac

exit 0

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

Для добавления сервисов находящихся в попдапках rc0.d – rc6.d в автозагрузку в системе есть специальная утилита chkconfig, с помощью которой можно добавлять или исключать сервисы.

# chkconfig -l service_name # просмотреть уровни автозагрузки сервиса
# chkconfig  –level 34 service_name on|off|reset # вкключить или выключить сервис на 3 и 4 уровнях
# chkconfig  –del service_ name # удалить службу
# chkconfig  service_name on|off # включить или выключить службу на всех уровнях
ну и есессно главная команда:
# man chkconfig

Помимо этого можно воспользоваться утилитой ntsysv , для редактирования всех уровней или задач редактирования для определенного уровня:

# ntsysv –level 34

Метки: , ,
Copyright © 2022

Опубликовано 01.12.2022 от admin в категории "HowTo