Systemd на CentOS/RHEL 7 и Fedora

centos systemd systemctlВведение

При переходе на CentOS/RHEL 7 и Fedora (начиная с 15 версии), можно заметить, что простая команда перезапуска сервиса дает непривычный ответ:

[root@localhost ~]# service crond restart
Redirecting to /bin/systemctl restart crond.service

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

В настоящее время решение об использовании systemd по-умолчанию в популярных дистрибутивах вызывает большие разногласия и споры. Но оставим непримиримых борцов и будем пользоваться тем, что есть.

А есть у нас довольно функциональный инструмент управления службами.

Основные команды управления службами

Старт, остановка и перезапуск

Строка Redirecting to /bin/systemctl restart crond.service, как бы намекает нам, что для перезапуска службы правильнее будет использовать команду

[root@localhost ~]# systemctl restart crond

Соответственно, для старта и остановки команды будут:

[root@localhost ~]# systemctl start crond
[root@localhost ~]# systemctl stop crond

Перезапуск службы, если она запущена:

[root@localhost ~]# systemctl condrestart crond

Перезагрузка и статус сервиса

Перезагрузить сервис, то есть заставить его перечитать конфигурационные файлы, поможет следующая команда:

[root@localhost ~]# systemctl reload crond

Узнать текущее состояние статуса:

[root@localhost ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: active (running) since Wd 2014-12-30 09:33:28 OMST; 1 weeks 6 days ago
Main PID: 1328 (httpd)
Status: "Total requests: 11; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─1328 /usr/sbin/httpd -DFOREGROUND
├─2563 /usr/sbin/httpd -DFOREGROUND
├─2564 /usr/sbin/httpd -DFOREGROUND
├─2565 /usr/sbin/httpd -DFOREGROUND
├─2566 /usr/sbin/httpd -DFOREGROUND
├─2567 /usr/sbin/httpd -DFOREGROUND
├─7576 /usr/sbin/httpd -DFOREGROUND
├─7577 /usr/sbin/httpd -DFOREGROUND
├─7578 /usr/sbin/httpd -DFOREGROUND
├─7579 /usr/sbin/httpd -DFOREGROUND
└─7580 /usr/sbin/httpd -DFOREGROUND

dec 30 09:33:28 localhost.localdomain systemd[1]: Started The Apache HTTP Server.

Старт сервиса при запуске системы

Включить, отключить и проверить автозапуск службы:

[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl disable httpd
[root@localhost ~]# systemctl is-enabled httpd

Какие сервисы загружаются автоматически

[root@localhost ~]# systemctl list-unit-files --type=service

Список уровней загрузки, при которых служба будет запущена:

[root@localhost]# ls /etc/systemd/system/*.wants/sshd.service
/etc/systemd/system/multi-user.target.wants/sshd.service

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *