如何从命令行判断哪些Screen会话仍在运行PHP进程?



我有大约25个Screen会话运行PHP脚本。

我如何知道哪些仍在运行从该Screen会话启动的PHP进程,而不必恢复每个Screen?我是否可以使用screen或linux的内置功能从命令行访问这些信息,还是必须编写脚本来处理这些信息?

我从命令行开始我的屏幕会话,并以同样的方式执行PHP脚本。

如果我的记忆正确的话,当程序完成运行时,屏幕会话(如果用命令开始,我认为是-x)将杀死自己(屏幕将退出),因此您可以解析screen -list并查看屏幕(带有您分配的会话名称)是否仍然存在。

或者(和我要做的),你可以添加一个运行行的表,当脚本在屏幕上启动(信息像它正在做什么,预期完成时间,屏幕上运行等)。然后让屏幕在完成时从数据库中删除行,这样你就能很好地看到正在发生的一切,以及它在哪里发生。

您甚至可以限制屏幕的数量,并在后台运行一个管理程序来为屏幕分配作业(检查数据库中的屏幕何时打开)。

就我个人而言,我会运行一个cronjob或脚本,将ps auxw | grep screen,然后循环通过每行,使用awk和其他好工具来查看当前在tty上运行的内容和tty的空闲时间…很有可能,如果PHP脚本已经完成运行,它将显示在tty上没有任何运行,您可以关闭该屏幕,甚至只是关闭tty…

最新更新