В чем разница между Systemd сервисом типа oneshot и simple



В чем разница между systemd сервисом Type oneshot и simple?
Это Ссылка состояния для использования simple вместо oneshot для таймеров. Я не в состоянии понять это правильно.

345   2  

2 ответов:

Единица обслуживания Type=oneshot:

  • Блокирует операцию запуска до тех пор, пока не завершится первый процесс, и его состояние будет сообщено как "активация";

  • Как только первый процесс завершается, переходы от "активирующего" прямо к "неактивному", если не задано RemainAfterExit=true (в этом случае он становится "активным" без процессов!);

  • Может иметь любое число (0 или более) директив ExecStart=, которые будут выполняться последовательно (ожидая, пока каждый запущенный процесс будет выход перед началом следующего);

  • Может пропустить ExecStart=, но иметь ExecStop= (полезно вместе с RemainAfterExit=true для организации вещей, чтобы работать при выключении системы).

Единица обслуживания Type=simple:

  • Не блокируется при запуске операции (т. е. становится "активным" сразу после разветвления первого процесса, даже если он все еще инициализируется!);

  • Как только первый процесс завершается, переходы от "активного" к "неактивному" (нет RemainAfterExit= вариант);

  • Обычно не рекомендуется, потому что нет способа отличить ситуации, такие как "вышел при запуске из-за ошибки конфигурации" от "разбился после 500 мс времени выполнения" и тому подобное.

Как Type=oneshot, так и Type=simple единицы измерения:

  • игнорируйте любые дочерние процессы первого процесса, поэтому не используйте эти режимы с процессами разветвления (Примечание: Вы можете использовать Type=oneshot с KillMode=none, но делайте это только в том случае, если вы знаете, кто вы есть делание ).

С точки зрения systemd, Type=simple - это своего рода огонь и забвение. Systemd просто разветвляет процесс, определенный в ExecStart=, и продолжает свой путь, даже если процесс не запускается.

Comments

    Ничего не найдено.