Чи можна вручну виконати єдиний системний блок, що працює в таймері, для тестування?


21

У мене встановлений таймер / сервісний блок, який повинен працювати один раз на день за --userумов. Він відображається systemctl --user statusі записується в журнал, але є частина команди, яка виходить з ладу.

Здається, що щось у команді трактується неправильно. Я хочу пограти з файлом одиниці та запустити службу, вивчити журнал тощо для налагодження проблеми; однак редагування таймера, щоб викликати хвилину в майбутньому, чекання та перевірка журналу ... нудна.

Можна зробити щось на кшталт systemctl --user execute xxxxxx.serviceпросто запустити річ з вивільненням, як якщо б таймер спрацював?

Відповіді:


12

Ви можете активувати будь-який пристрій вручну, якщо він не містить RefuseManualStart=yesта / або RefuseManualStop=yesдирективу (які виконують саме те, що вони говорять). Просто видайте systemctl --user start <whatever>systemctl --user stop <whatever>зробити навпаки).

Цитувати systemctl (1) :

почати ПАТЕРН ...

Запустіть (активуйте) один або кілька одиниць, вказаних у командному рядку.

<...>

зупинити ПАТЕРН ...

Зупиніть (деактивуйте) один або кілька одиниць, вказаних у командному рядку.


Тут не працює:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584

1
@ eMPee584 Оскільки ця відповідь була написана, systemd отримав нові директиви RefuseManualStart=і RefuseManualStop=(які виконують саме те, що вони говорять). Я оновив свою відповідь, щоб згадати про це.
intelfx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.