开发者

How can I tell whether screen is running?

开发者 https://www.devze.com 2022-12-28 14:07 出处:网络
I am trying to run a Python program to see if the screen program is running. If it is, then the program should not run the rest of the code.This is what I have and it\'s not working:

I am trying to run a Python program to see if the screen program is running. If it is, then the program should not run the rest of the code. This is what I have and it's not working:

#!/usr/bin/python

import os
var1 = os.system ('screen -r > /root/screenlog/screen.log')
fd = open("/root/screenlog/screen.log")
content = fd.readline()

while content:
 if content == "There is no screen to be resumed.":
  os.system ('/etc/init.d/tunnel.sh')
  print "The tunnel is now active."
 else:
  print "The tun开发者_StackOverflow社区nel is running."
fd.close()

I know there are probably several things here that don't need to be and quite a few that I'm missing. I will be running this program in cron.


from subprocess import Popen, PIPE

def screen_is_running():
    out = Popen("screen -list",shell=True,stdout=PIPE).communicate()[0]
    return not out.startswith("This room is empty")


Maybe the error message that you redirect on the first os.system call is written on the standard error instead of the standard output. You should try replacing this line with:

var1 = os.system ('screen -r 2> /root/screenlog/screen.log')

Note the 2> to redirect standard error to your file.

0

精彩评论

暂无评论...
验证码 换一张
取 消