systemd
服务Type
oneshot
和simple
之间有什么区别?
此link表示使用simple
代替oneshot
作为计时器。我无法正确理解它。
答案 0 :(得分:44)
Type=oneshot
服务单位:
阻止启动操作,直到第一个进程退出,其状态将报告为"激活";
一旦第一个进程退出,转换为"激活"直到"不活动",除非RemainAfterExit=true
被设置(在这种情况下,它变为"活动"没有进程!);
可以有任意数量(0或更多)的ExecStart=
指令,这些指令将按顺序执行(等待每个已启动的进程在开始下一个进程之前退出);
可能会遗漏ExecStart=
但有ExecStop=
(与RemainAfterExit=true
一起用于安排在系统关闭时运行的内容)。
Type=simple
服务单位:
不会阻止启动操作(即,即使它仍在初始化,也会立即执行"激活"即使它仍在初始化!)
一旦第一个进程退出,转换为" active"到"不活跃" (没有RemainAfterExit=
选项);
通常是不鼓励的,因为由于配置错误而没有办法区分像#34;启动时出现的情况"来自"在运行500ms后崩溃了#34;等等。
Type=oneshot
和Type=simple
单位:
Type=oneshot
与KillMode=none
,一起使用,但只有在知道了正在做)。答案 1 :(得分:0)
从systemd的角度来看,Type=simple
有点火,忘了。 Systemd只是在ExecStart=
中定义了一个进程,即使进程无法启动也会继续进行。