💾 Archived View for tilde.team › ~rami › redhat_systemd.gmi captured on 2023-01-29 at 04:20:22. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
רמי
SUBJECT: Systemd (Systemctl): Команды и управление юнитами
AUTHOR: Rami Rosenfeld
DATE: 12/09/22
TIME: 15.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, systemd, systemctl, selinux, firewalld, dnf, rpm
В разделе приведены наиболее употребимые и полезные команды управления всей(!) ОС средствами Systemd (Systemctl), поэтому примите к сведению два предупреждения:
Важно: Будьте крайне внимательны и осторожны! Отключение любого из системных юнитов может привести к неработоспособности всей ОС!
Важно: Отключайте, блокируйте и маскируйте юниты только(!) в том случае, если вы понимаете, что делаете и уверены в конечном результате. Например: avahi, cups, samba, sshd, bluetooth и т.п.
systemctl reboot
systemctl poweroff
systemctl daemon-reload
systemctl
systemctl list-units
systemctl --failed
systemctl list-unit-files
Юниты делятся на группы. Основные:
- сервисы (.service);
- точки монтирования (.mount);
- сокеты (.sockets).
Кроме того, существуют также:
- automount;
- swap;
- target;
- path;
- timer;
- snapshot;
- slice;
- scope.
Примечание: При использовании systemctl необходимо указывать полное имя файла с его расширением. Но есть и нюансы:
- если привести имя без суффикса, systemctl предположит, что это .service. Например "name" = "name.service";
- точки монтирования автоматически преобразуются в юнит .mount. Например: "/folder_name" = "folder_name.mount";
- имена устройств автоматически преобразуются в юнит .device. Например: "/dev/sda1" = "dev-sda1.device".
Примечание: Обратите внимание на регистр букв в именах: "Name.service" и "name.service" - это абсолютно разные юниты!
Проверка статус юнита и его состояния:
systemctl status name.service
Проверка автозагрузки юнита при старте ОС:
systemctl is-enabled name.service
Показать help для юнита:
systemctl help unit
Запуск юнита:
systemctl start name.service
Остановка юнита:
systemctl stop name.service
Активация юнита (с автозапуском при загрузке ОС):
systemctl enable name.service
Активация и запуск юнита (с автозапуском при загрузке ОС):
systemctl enable name.service && systemctl start name.service
Деактивация юнита (с отключением автозапуска при загрузке ОС):
systemctl disable name.service
Остановка и деактивация юнита (с отключением автозапуска при загрузке ОС):
systemctl stop name.service && systemctl disable name.service
Полное отключение и деактивация юнита с "маскировкой"
systemctl stop name.service && systemctl mask name.service
Примечание: команда mask необходима, чтобы заблокированный юнит не был активирован сторонней службой или при очередном обновлении ОС.
Перезапуск юнита (в случае неработоспособности):
systemctl restart name.service
Перезагрузка настроек юнита (после внесения изменений):
systemctl reload name.service
Просмотр лога деятельности отдельного юнита:
journalctl -u name.service
man hostnamectl
man localectl
man timedatectl
systemctl edit name.service
[Unit]
Description=Name of the Service
After=some.target
Wants=some.target
[Service]
Type=simple
BusName=org.freedesktop.Name
ExecStart=/usr/libexec/name-daemon
Environment=
PrivateTmp=true
[Install]
WantedBy=graphical.target
Создание нового юнита systemd
nano /etc/systemd/system/name.service
После внесения изменений в конфигурационные файлы юнитов (.service и т.п.) может потребоваться перезагрузка systemd (с применением изменений и поиском новых юнитов):
systemctl daemon-reload
Подробнее см.:
Understanding and Administering systemd
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.