主pipe – 如何让程序在一段时间内运行

也许我是和主pipe误解呢,但是也许我问这个问题将有助于澄清这个问题。 基本上,我在/etc/supervisord.conf文件中有一个Supervisor程序,它执行一个简单地执行PHP脚本的bash脚本。 只有在主pipe启动后,我才能成功地让这个bash脚本从主pipe运行。 然而,它不是像监督者那样在设定的时间间隔后台运行这些任务,以便我可以知道它总是在运行,并根据它运行的脚本来处理它可能需要的任何任务。

这里是我的conf文件中的程序:

[program:program_name_d] command=/path/to/runme process_name=%(program_name)s numprocs=1 autostart=true 

这听起来像你的实际寻找更接近克朗。 我对pipe理员不熟悉,但是从这里提供的描述来看,这听起来是尝试成为init的某些方面的用户空间replace。 我的意思是说它着重于提供:

  • 服务的启动/停止/重新启动(程序)
  • 自动程序崩溃检测和重启
  • 在启动时控制各种程序的启动顺序。
  • 将服务pipe理委托给与他们合作的人员(也就是将Web服务器重新启动权限授予Web开发人员)。

你打算做什么实际上是可能的,但是你必须修改你的中间bash脚本来实际执行重复过程的间隔运行。

在我的公司,我们使用python脚本执行完全相同的任务,以重复的间隔运行php脚本。 那么你需要做些什么呢?

  1. 创build一个正在执行的文件的脚本和间隔作为参数。
  2. 创build一个While循环或更好的,某种可运行的任务连续执行,并具有closures处理,以防止任务意外死亡。 使任务执行目标程序并等待间隔。 记住等待,直到你的目标完成执行,然后再等待。
  3. 在Supervisor中,将中间脚本设置为目标并提供参数。 如果你创build了一个goog的实现,你应该可以使用脚本来执行多个脚本,这些脚本可以用同样的方法执行。
  4. 更新您的主pipeconf并启动过程。

田田:你有一个类似cronjob的进程,由主pipe运行和监视。

当然,你也可以扩展你的脚本,以便在特定的时间范围内处理date,工作日或时间跨度。 所以你的脚本只能在凌晨1点左右执行。