ssh server
我想知道是否有办法使用 Python找出系统中的状态。我只想知道服务器是否处于活动状态(只是是/否)。即使它只是一个 linux 命令也会有所帮助,这样我就可以使用popen
来自subprocess
模块的 python 并运行该命令。
谢谢
PS:我正在openssh-server
使用linux (ubuntu 12.04)
ssh server
我想知道是否有办法使用 Python找出系统中的状态。我只想知道服务器是否处于活动状态(只是是/否)。即使它只是一个 linux 命令也会有所帮助,这样我就可以使用popen
来自subprocess
模块的 python 并运行该命令。
谢谢
PS:我正在openssh-server
使用linux (ubuntu 12.04)
如果您想要一种通用的方式来判断进程是否正在运行,您可以使用ps
.
def IsThisProcessRunning( ps_name ):
ps = subprocess.Popen("ps axf | grep %s | grep -v grep" % ps_name,
shell=True, stdout=subprocess.PIPE)
output = ps.stdout.read()
ps.stdout.close()
ps.wait()
if re.search(ps_name, output) is None:
return False
else:
return True
IsThisProcessRunning('/usr/sbin/apache2') # True, if Apache2 is running.
如果你有一个常用的名字;您可以指定位置,例如/usr/sbin/apache2
为了安全起见,您可以结合查找进程名称,同时查找 pid 文件。这是init.d脚本中常用的技术。
try:
pf = file('/var/run/my_program.pid', 'r')
pid = int(pf.read().strip())
pf.close()
except IOError:
pid = None
if pid:
# Process is running.
运行service sshd status
(例如 via Popen()
)并阅读它告诉您的内容。