Як відключити послугу без використання "systemctl disabled"


12

Є служба, яку я хочу запустити лише тоді, коли інша служба не працює ( [Unit] OnFailure=foo), але я не хочу, щоб ця послуга ( foo) запускалася автоматично під час завантаження. Один варіант працює systemctl disable foo, але я шукаю інший шлях.

Передумови: я створюю зображення ОС, і мені не хочеться завантажувати машину, запустіть цю команду ( systemctl disable foo), а потім вимкніть її, перш ніж оголосити своє зображення остаточним.

Відповіді:


4

Усі служби за замовчуванням "відключені"; "увімкнення" відключено.

Якщо foo.serviceце ваша користувацька послуга, вона не буде запущена, якщо явно щось не втягнуто (наприклад, OnFailure=директива), і ви нічого не повинні "відключати".


Отже, ви "отримуєте цю функціональність безкоштовно", якщо раніше foo не було включено?
rogerdpack

26

systemctl enableпрацює за допомогою маніпулювання символьними посиланнями в /etc/systemd/system/(для демонів системи). Коли ви enableкористуєтеся послугою, вона переглядає WantedByрядки в [Install]розділі та відображає символи посилань у цих .wantsкаталогах.

systemctl disable робить навпаки.

Ви можете просто видалити ці посилання - це робити вручну, цілком еквівалентно використанню systemctl disable.


Це була б послуга, якою ще не керував systemd (це звичайно), тому не було б жодної із цих додаткових посилань. Я здогадуюсь, що вони будуть створені під час першого завантаження?
thepang

3
@Tshepang він не повинен бути включений, якщо ви не ввімкнете його вручну (або, звичайно, у сценарії)
derobert

1
О, я припускав, що це буде ввімкнено автоматично (що я очікував, встановивши пакети Debian). Добре знати.
thepang

3
@Tshepang - це сценарій постінст в пакеті, що робить активацію. Або я здогадуюсь про доставку символьних посилань в упаковці, не впевнений, чи роблять вони це.
дероберт

4

Ви можете використовувати, systemctl start ServiceName.serviceа systemctl stop Service.Name.serviceтакож запускати та зупиняти послугу відповідно. На відміну від systemctl enable ...та systemctl disable ..., команди запуску та зупинки тривають лише для поточного сеансу, тому при перезавантаженні машини зміни не будуть збережені.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.