Содержание
Введение
Systemd это демон инициации других демонов Linux. Systemd полностью поддерживается в Ubuntu 15.04 и старше.
Архитектура
Переопределение конфигурационных файлов
Systemd позволяет менять настройки сервисов без модификации оригинальных файлов. Для этого надо:
- Создать директорию ниже «/etc/systemd/system/» или в «/lib/systemd/system/» названную «${unit}.d/»
- Создать файл <something>.conf в «${unit}.d/» директории, содержащий параметры директив которые вы хотите обновить.
Командная строка
Ubuntu имеет смешанную систему инициализации. В Ubuntu 14.10 и ниже - sysv и upstart, в Ubuntu 15.04 - upstart и systemd.
Действие | Команда sysv | Общая команда | Команда upstart | Команда systemd | Замечания |
---|---|---|---|---|---|
Start service | sudo /etc/init.d/имясервиса start | sudo service имясервиса start | start $job | systemctl start $unit | |
Stop service | sudo /etc/init.d/имясервиса stop | sudo service имясервиса stop | stop $job | systemctl stop $unit | |
Restart service | sudo /etc/init.d/имясервиса restart | sudo service имясервиса restart | restart $job | systemctl restart $unit | |
See status of services | service --status-all, service --status-all|sort|ccze -A|less -R | initctl list , initctl list|sort|ccze -A|less -R | systemctl status, systemctl --no-pager status|ccze -A|less -R | ||
Check configuration is valid | init-checkconf /tmp/foo.conf | systemd-analyze verify <unit_file> | |||
Show job environment | initctl list-env | systemctl show-environment | |||
Set job environment variable | initctl set-env foo=bar | systemctl set-environment foo=bar | |||
Remove job environment variable | initctl unset-env foo | systemctl unset-environment foo | |||
View job log | cat /var/log/upstart/$job.log | sudo journalctl -u $unit | |||
tail -f job log | tail -f /var/log/upstart/$job.log | sudo journalctl -u $unit -f | |||
Show relationship between services | initctl2dot | systemctl list-dependencies –all | Shows pstree-style output. | ||
Отключить службу из автозагрузки | sudo update-rc.d имясервиса disable | echo «manual» | sudo tee -a /etc/init/mysql.override | systemctl disable foo.service | ||
Включить службу в автозагрузку | sudo update-rc.d имясервиса enable | убрать директиву manual | systemctl enable foo.service |
Ссылки
- Сравнение upstart и systemd на английском
- Часто задаваемые вопросы на английском
- Создать лог из командной строки на английском