systemd

Материал из Xgu.ru

Перейти к: навигация, поиск

systemd — набор программ и библиотек, предназначенный для управления процессами и конфигурацией операционной системы Linux. Может использоваться как init-процесс, то есть процесс, запускаемый ядром при старте системы и управляющий его дальнейшей загрузкой.

На сегодняшний день systemd управляет загрузкой во всех основных дистрибутивах операционной системы Linux.

Содержание

[править] Использование systemd в различных Linux-дистрибутивах

Дистрибутив Когда добавлен в репозиторий Используется по умолчанию? С какого времени?
Arch Linux Январь 2012 Да Октябрь 2012
CoreOS Июль 2013 Да Октябрь 2013 (v94.0.0)
Debian Апрель 2012 Да Апрель 2015 (v8 aka jessie)
Fedora Ноябрь 2010 (v14) Да Май 2011 (v15)
Gentoo Июль 2011 Нет N/A
Mageia Май 2012 (v2.0) Да Май 2012 (v2.0)
openSUSE Март 2011 (v11.4) Да Сентябрь 2012 (v12.2)
Red Hat Enterprise Linux Июнь 2014 (v7.0) Да Июнь 2014 (v7.0)
Slackware N/A (нет в репозитории) N/A N/A
SUSE Linux Enterprise Server Октябрь 2014 (v12) Да Октябрь 2014 (v12)
Ubuntu Апрель 2013 (v13.04) Да Апрель 2015 (v15.04)

[править] Основные операции со службами

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

[править] Устройство Systemd

Systemd-diagram.png

[править] Как добавить свою службу в systemd

Необходимо создать service-файл в /etc/systemd/system (в данном случае мы добавляем службу dlink-dhcp-server):

$ cat /etc/systemd/system/dlink-dhcp-server.service 
[Unit]
Description=Start DHCP Server on the external router when the host is down
After=network.target auditd.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/dlink-dhcp-server.py off
ExecStop=/usr/local/bin/dlink-dhcp-server.py on
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

А потом добавить службу в загрузку:

$ sudo systemctl enable dlink-dhcp-server

Подробнее:

[править] Дополнительная информация

Источник — «http://xgu.ru:81/wiki/systemd»