s6:如何让运行脚本只运行一次?

Zed*_*TuX 2 linux init.d

我正在使用 s6 ( http://skarnet.org/software/s6/ ) 来监督多个进程。

我的/etc/s6/文件夹中有几个服务,其中之一只需start要从 init.d 脚本调用操作。

截至目前,该脚本已启动良好,但随后它试图一次又一次地重新启动它。

有没有办法避免这种情况?

小智 5

如果您的服务是一次性的,即它需要运行一次并死掉,但不能保持活动状态,那么它不适合进行监督。进程监督只适用于长时间运行的进程,也就是守护进程。

您的问题的正确解决方案是将一次性脚本从一组受监督的服务中取出,并在初始化过程中的某个时刻运行它,而不要试图让 s6-svscan/s6-supervise 管理它。


小智 5

您可以使用 s6 执行此操作,方法是s6-svc -O /etc/s6/servicefolder在运行脚本的开头包含。这将告诉 s6 不要再次启动此服务。

来源:https : //skarnet.org/software/s6/s6-svc.html