Php 如何可靠地启动和停止一个长时间运行的流程(想想几天),该流程比所使用的脚本更有效?

Php 如何可靠地启动和停止一个长时间运行的流程(想想几天),该流程比所使用的脚本更有效?,php,Php,我有一个CLI php应用程序,其中包含一个命令,用于启动Selenium服务器的后台进程,然后退出: php app.php服务器:启动它应该立即返回 应用程序还需要能够在以后的调用中停止后台进程: php app.php服务器:停止 由于服务器进程比启动/停止脚本的时间长,因此我无法通过保持打开一个文件描述符来管理它 我可以在启动期间将进程的PID存储在文件系统上,并在停止时终止该PID。但是,如果在后台进程自身死亡后运行stop命令,我就有可能杀死一个我没有启动的进程,因为PID可能已被操

我有一个CLI php应用程序,其中包含一个命令,用于启动Selenium服务器的后台进程,然后退出:

php app.php服务器:启动它应该立即返回

应用程序还需要能够在以后的调用中停止后台进程:

php app.php服务器:停止

由于服务器进程比启动/停止脚本的时间长,因此我无法通过保持打开一个文件描述符来管理它

我可以在启动期间将进程的PID存储在文件系统上,并在停止时终止该PID。但是,如果在后台进程自身死亡后运行stop命令,我就有可能杀死一个我没有启动的进程,因为PID可能已被操作系统重新用于其他进程

现在,我的方法不仅是存储后台进程的PID,还存储后台进程的启动时间和使用的命令。这没关系,但很难让它在不同的平台上保持一致,我需要Linux、Mac和Windows


你能想出更好的方法来实现这种行为吗?

你正在寻找一个作业调度器。我将创建两个脚本/cron jobs start.sh&stop.sh,并计划在stop.sh之前运行start.sh。您可以设置特定的日期/时间