В чем разница между Systemd сервисом типа oneshot и simple
В чем разница между systemd сервисом Type oneshot и simple?
Это Ссылка состояния для использования simple вместо oneshot для таймеров. Я не в состоянии понять это правильно.
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