2011-07-12 41 views
1

我有运行PHP脚本约25屏幕会话。如何判断哪个Screen会话仍在从命令行运行PHP进程?

我怎样才能知道哪些仍在运行从屏幕会话发起的PHP程序,而无需重启每个屏幕?我可以通过内置的screen或linux功能从命令行访问这些信息,还是必须编写脚本来处理这些信息?

我开始我的屏幕会话的命令行和执行的PHP脚本一样。

+0

你如何开始你的屏幕会话?用PHP? – Laimoncijus

+0

我从命令行开始我的屏幕会话并以相同的方式执行php脚本。 –

回答

3

如果我没记错的话,屏幕会话(如果开始的命令,我认为这是-x)会杀死自己(屏幕会退出)当程序运行完毕,所以你可以只解析screen -list并查看屏幕(与您分配的会话名称)是否仍然存在。 (或者我会做什么),当脚本在屏幕上启动时(例如它正在做什么,预计完成时间,屏幕运行在什么等信息),你可以向表中添加一个正在运行的行。然后,只要屏幕从数据库中删除该行,完成后就可以看到所有正在发生的事情以及发生的情况。

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

1

就个人而言,我会运行一个cronjob或脚本,将ps auxw | grep screen,然后遍历每个行,使用awk和所有其他很好的工具,看看有什么是对TTY和TTY的空闲时间,目前正在运行...机会是,如果PHP脚本运行完毕后,它会显示有上TTY运行什么,你可以杀死屏幕甚至只是TTY ...

相关问题