我是Ubuntu 9.04的用户。给定屏幕会话列表,如下所示:
9076.pts-30.moe (09/27/2009 11:30:08 PM) (Attached)
8778.pts-24.moe (09/27/2009 11:29:46 PM) (Detached)
8674.pts-0.moe (09/27/2009 11:29:25 PM) (Attached)
22649.pts-28.moe (09/27/2009 11:51:46 AM) (Detached)
22543.pts-24.moe (09/27/2009 11:50:56 AM) (Detached)
22228.pts-16.moe (09/27/2009 11:49:59 AM) (Detached)如何根据时间标准关闭多个屏幕?例如,下午12:00之前启动的所有屏幕我通常会键入:
screen -dr 22649.pts-28.moe
exit
...并手动关闭每一个,但这很繁琐。提前谢谢。
发布于 2009-09-28 08:05:12
您可以使用-X参数将命令发送到屏幕。所以你可以通过命令行说"screen -S 22649.pts-28.moe -X quit“来关闭屏幕。
要按时间选择屏幕,我猜您必须运行一个脚本来比较时间。
就我个人而言,我会在python中使用os.popen()和time.strptime()。
发布于 2012-01-03 04:53:00
下面是我如何删除所有分离的屏幕:
screen -ls | grep Detached | awk -F" " '{print $1}' | xargs -I{} screen -X -S {} kill如果你想强行杀死所有屏幕,只需将上面的grep Detached改为grep tached即可。至少对我来说一直都是有效的!
对于时间标准,你可以从这个开始:
screen -ls | grep Detached | awk -F " " '{print $2,$3,$4","$1}'这将打印类似以下内容:
(01/03/2012 02:10:42 AM),4504.test2
(01/03/2012 02:10:12 AM),4445.test1
(01/03/2012 02:02:58 AM),4333.test0其中第一组是时间戳,用逗号分隔,是PID.name。
因此,您可以再次使用/ awk来解析括号中的时间(或者使用awk -F"," '{print $1}'来精确地提取括号中的时间戳)。记住,screen -ls总是在最后列出最早的屏幕!
我自己还没有想好如何做时间标准过滤,如果可以的话,我会在将来编辑这篇文章。祝你好运,伙计!
发布于 2009-09-28 08:05:35
点之前的数字(在您的示例中为22649)是屏幕进程的PID。干掉它(kill 22649)
https://stackoverflow.com/questions/1485877
复制相似问题