RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:autostart

Автозагрузка сервисов в Linux

CentOS

CentOS 7

Вывести список всех сервисов

# systemctl list-unit-files --type=service

Проверить статус httpd

# systemctl status httpd

Добавить сервис в автозагрузку (аналог chkconfig on)

# systemctl enable httpd

Убрать сервис из автозагрузки

# systemctl disable httpd

Проверить добавлен ли httpd в автозагрузку

# systemctl is-enabled httpd

Проверить какие сервисы не смогли запуститься при старте системы

# systemctl --failed
UNIT              LOAD   ACTIVE SUB    DESCRIPTION
ip6tables.service loaded failed failed IPv6 firewall with ip6tables

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

Более подробный список доступных команд

Ниже представлены основные команды systemctl:

Команда Описание
systemctl start name.service запуск сервиса
systemctl stop name.service остановка сервиса
systemctl restart name.service перезапуск сервиса
systemctl try-restart name.service перезапуск сервиса только, если он запущен
systemctl reload name.service перезагрузка конфигурации сервиса
systemctl status name.service проверка, запущен ли сервис с детальным выводом состояния сервиса
systemctl is-active name.service проверка, запущен ли сервис с простым ответом: active или inactive
systemctl list-units –type service –all отображение статуса всех сервисов
systemctl enable name.service активирует сервис (позволяет стартовать во время запуска системы)
systemctl disable name.service деактивирует сервис
systemctl reenable name.service деактивирует сервис и сразу активирует его
systemctl is–enabled name.service проверяет, активирован ли сервис
systemctl list-unit-files –type service отображает все сервисы и проверяет, какие из них активированы
systemctl mask name.service заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd
systemctl unmask name.service возвращает файл сервиса, делая юнит доступным для systemd

CentOS 6

chkconfig

Вывести список всех сервисов

# chkconfig --list
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
htcacheclean    0:off   1:off   2:off   3:off   4:off   5:off   6:off
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
ip6tables       0:off   1:off   2:off   3:off   4:off   5:off   6:off
ipset           0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
memcached       0:off   1:off   2:on    3:on    4:on    5:on    6:off
munin-node      0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off
named           0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off
portreserve     0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
svnserve        0:off   1:off   2:off   3:off   4:off   5:off   6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vnstat          0:off   1:off   2:on    3:on    4:on    5:on    6:off
xinetd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

Показать информацию по сервису httpd

# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Добавить сервис в автозагрузку

# chkconfig httpd on
или
# chkconfig --level 345 httpd on

Чтобы отключить

# chkconfig httpd off

ntsysv

Также можно воспользоваться утилитой ntsysv

# yum install ntsysv
# ntsysv --level 345

Debian/Ubuntu

update-rc.d

Вывести список сервисов и их состояние

# service --status-all
 [ + ]  acpid
 [ - ]  anacron
 [ + ]  atd
 [ + ]  avahi-daemon
 [ - ]  bootlogs
 [ ? ]  bootmisc.sh
 [ ? ]  checkfs.sh
 [ ? ]  checkroot-bootclean.sh
 [ - ]  checkroot.sh
 [ - ]  console-setup
 [ + ]  cron
 [ + ]  dbus
 [ + ]  exim4
 [ ? ]  hdparm
 [ - ]  hostname.sh
 [ ? ]  hwclock.sh
 [ - ]  kbd
 [ - ]  keyboard-setup
 [ - ]  keymap.sh
 [ ? ]  killprocs
 [ ? ]  kmod
 [ - ]  motd
 [ ? ]  mountall-bootclean.sh
 [ ? ]  mountall.sh
 [ ? ]  mountdevsubfs.sh
 [ ? ]  mountkernfs.sh
 [ ? ]  mountnfs-bootclean.sh
 [ ? ]  mountnfs.sh
 [ ? ]  mtab.sh
 [ ? ]  mysql
 [ ? ]  networking
 [ + ]  nginx
 [ + ]  php5-fpm
 [ - ]  procps
 [ ? ]  rc.local
 [ - ]  rmnologin
 [ - ]  rsync
 [ + ]  rsyslog
 [ ? ]  sendsigs
 [ + ]  ssh
 [ - ]  sudo
 [ + ]  udev
 [ ? ]  udev-mtab
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot
 [ - ]  urandom

[ + ] - сервис работает в настоящее время
[ - ] - сервис в настоящее время не работает
[ ? ] - вывод статуса для сервиса не предусмотрен

Перевод man доступен здесь

Добавить apache2 в автозагрузку

# update-rc.d apache2 defaults
update-rc.d: using dependency based boot sequencing

Удалить apache2 из автозагрузки

# update-rc.d -f apache2 remove
update-rc.d: using dependency based boot sequencing

Чуть подробнее.

В Linux у нас определенное количество уровней выполнения (runlevel)

К примеру MySQL и Apache у нас загружаются на 3 уровне.

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

Для этого нам нужно установить start (S) и kill (K) приоритеты.

Для MySQL нужно поставить приоритет на стадии загрузки, а для Apache приоритет на shutdown\reboot'е.

При старте (S), чем меньше значение приоритета, тем раньше сервис будет запущен. Сервис со start приоритетом равным 10 будет запущен раньше сервиса с приоритетом равным 20.

При остановке (K) всё наоборот. Сервис с большим приоритетом будет остановлен раньше, чем сервис с меньшим приоритетом.

Небольшой пример.

Устанавливаем приоритет start и kill сервису Apache

Синтаксис следующий

update-rc.d apache2 defaults [START] [KILL]

Итак, сделаем так, чтобы сначала стартовал MySQL, а потом Apache. А при рестарте сначала останавливался Apache, а потом MySQL.

# update-rc.d apache2 defaults 90 90
# update-rc.d mysql defaults 10 10

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

# update-rc.d apache2 defaults 90
# update-rc.d mysql defaults 10

Утилита sysv-rc-conf

# apt-get install sysv-rc-conf
# sysv-rc-conf

БОНУС - шпаргалка SysVinit/systemd

via https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet/ru

Команда sysvinit Команда systemd Комментарий
service frobozz start systemctl start frobozz.service Используется для разового запуска службы.
service frobozz stop systemctl stop frobozz.service Используется для разовой остановки службы.
service frobozz restart systemctl restart frobozz.service Используется для разового перезапуска службы.
service frobozz reload systemctl reload frobozz.service Если такая возможность поддерживается службой, перезагружает конфигурационный файл, не прерывая процесса.
service frobozz condrestart systemctl condrestart frobozz.service Перезапускает службу, если она запущена.
service frobozz status systemctl status frobozz.service Сообщает, запущена ли служба.
ls /etc/rc.d/init.d/ ls /lib/systemd/system/*.service /etc/systemd/system/*.service Используется для получения списка служб, которые могут быть запущены или остановлены.
chkconfig frobozz on systemctl enable frobozz.service Включает запуск службы после перезагрузки.
chkconfig frobozz off systemctl disable frobozz.service Отключает запуск службы после перезагрузки.
chkconfig frobozz systemctl is-enabled frobozz.service Используется для проверки, будет ли служба запущена после перезагрузки.
chkconfig frobozz –list ls /etc/systemd/system/*.wants/frobozz.service Выдает список уровней загрузки(целей), при которых данная служба будет запущена автоматически.
chkconfig frobozz –add Не используется, нет аналога.

Бонус к бонусу - шпаргалка в pdf, svg, dvi, tex | PDF версия, зеркало rtfm.wiki

Обсуждение

НиколайНиколай, 2021/08/04 18:52

Благодарю

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/autostart.txt · Последнее изменение: 2017/03/08 00:13 — 127.0.0.1