如何检查屏幕是否正在运行?

use*_*344 3 python gnu-screen

如何在Python中检查屏幕是否具有给定的名称。例如,检查server1是否正在运行?

谢谢 : )

Pet*_*son 5

用于查找当前屏幕会话的内置命令是screen -ls

要在 python 中获得相同的功能:

from subprocess import check_output

def screen_present(name):
        var = check_output(["screen -ls; true"],shell=True)
        if "."+name+"\t(" in var:
                print name+" is running"
        else:
                print name+" is not running"

screen_present("server1")
Run Code Online (Sandbox Code Playgroud)

对代码的几点评论:

  • 我必须使用; trueandshell=True因为 screen 返回退出代码1,这与该函数不能很好地配合check_output
  • 另外,我添加了"."++\t(来确保我们匹配屏幕名称而不是打印输出的其他部分。