Есть служба, которую я хочу запустить только в случае сбоя другой службы ( [Unit] OnFailure=foo
), но я не хочу, чтобы эта служба ( foo
) запускалась автоматически при загрузке. Один вариант работает systemctl disable foo
, но я ищу другой путь.
Предыстория: я создаю образ ОС, и я не хочу загружать машину, запустите эту команду ( systemctl disable foo
), затем выключите его, прежде чем объявить мой образ окончательным.
systemctl enable
работает, управляя символическими ссылками в/etc/systemd/system/
(для системных демонов). Когда выenable
работаете с сервисом, он просматриваетWantedBy
строки в[Install]
разделе и помещает символические ссылки в эти.wants
каталоги.systemctl disable
делает обратное.Вы можете просто удалить эти символические ссылки - делать это вручную полностью эквивалентно использованию
systemctl disable
.источник
Вы можете использовать
systemctl start ServiceName.service
иsystemctl stop Service.Name.service
для запуска и остановки службы соответственно. В отличие отsystemctl enable ...
иsystemctl disable ...
, команды пуска и останова действуют только для текущего сеанса, поэтому при перезагрузке компьютера изменения не будут сохранены.источник