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

时间:2011-07-12 06:52:10

标签: php linux command-line gnu-screen

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

如何判断哪些仍在运行从该屏幕会话启动的PHP进程,而无需恢复每个屏幕?我可以从命令行使用屏幕或linux的内置功能访问此信息,还是必须编写脚本来处理此问题?

我从命令行启动了屏幕会话,并以相同的方式执行了PHP脚本。

2 个答案:

答案 0 :(得分:3)

如果我的记忆对我有用,屏幕会话(如果用命令启动,我认为是-x)会在程序运行完毕后自行终止(屏幕会退出),所以你可以解析{ {1}}并查看屏幕(您指定的会话名称)是否仍在那里。

或者(以及我会做什么)你可以在屏幕上启动脚本时向表中添加一个正在运行的行(包括它正在做什么,预期完成时间,屏幕运行等信息)。然后让屏幕在数据库完成后从数据库中删除该行,您可以很好地查看正在发生的所有事情以及它发生的位置。

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

答案 1 :(得分:1)

就个人而言,我会运行一个cronjob或脚本ps auxw | grep screen然后循环遍历每一行,使用awk和其他所有好的工具来查看当前在该tty上运行的内容和空闲tty的时间......如果PHP脚本运行完毕,它将显示该tty上没有任何内容正在运行,你可以杀死那个屏幕甚至只是tty ......