我有大约25个运行PHP脚本的Screen会话。
如何判断哪些仍在运行从该屏幕会话启动的PHP进程,而无需恢复每个屏幕?我可以从命令行使用屏幕或linux的内置功能访问此信息,还是必须编写脚本来处理此问题?
我从命令行启动了屏幕会话,并以相同的方式执行了PHP脚本。
答案 0 :(得分:3)
如果我的记忆对我有用,屏幕会话(如果用命令启动,我认为是-x)会在程序运行完毕后自行终止(屏幕会退出),所以你可以解析{ {1}}并查看屏幕(您指定的会话名称)是否仍在那里。
或者(以及我会做什么)你可以在屏幕上启动脚本时向表中添加一个正在运行的行(包括它正在做什么,预期完成时间,屏幕运行等信息)。然后让屏幕在数据库完成后从数据库中删除该行,您可以很好地查看正在发生的所有事情以及它发生的位置。
您甚至可以限制屏幕数量,并在后台运行管理程序以将作业分配给屏幕(检查数据库何时打开屏幕)。
答案 1 :(得分:1)
就个人而言,我会运行一个cronjob或脚本ps auxw | grep screen
然后循环遍历每一行,使用awk
和其他所有好的工具来查看当前在该tty上运行的内容和空闲tty的时间......如果PHP脚本运行完毕,它将显示该tty上没有任何内容正在运行,你可以杀死那个屏幕甚至只是tty ......