Shell到Python的问题

2024-09-27 19:29:03 发布

您现在位置:Python中文网/ 问答频道 /正文

    if ! ps ax | grep -v grep | grep -v -i tmux | grep "theserver.jar" > /dev/null; then
        echo "Server failed to start!"
    else
        echo "Server successfully started!"
    fi

请问用python怎么做这个? 我不知道怎么做。拜托,帮帮我:( 我能用吗操作系统?在

提前谢谢。在


Tags: todevechoifserveraxstartnull
2条回答

您可以使用subprocess模块解压并运行任意shell命令,但是您可能需要考虑使用PSI或{a3}模块。在

它们是非标准的,因此您必须下载并安装它们,但它们将更加健壮,并且能够抵抗错误。(请记住,ps输出格式可以在不同的平台上更改)。下面是一个psutil实现示例,它或多或少地完成了您正在尝试的操作。显然,将'Python''theserver.jar'交换,或者使用p.exe或{}来检查名称。在

import psutil

def find_processes_by_name(name):
  for p in psutil.process_iter():
    try:
      if p.name == name:
        yield p.pid
    except psutil.error.AccessDenied as e:
      pass

  raise StopIteration

print "Python processes:"
for pid in find_processes_by_name('Python'):
  print '\t', pid

假设我想知道我是否在运行sshd的服务器上(只是您示例中jar文件的替代品)

import os

command=" ps ax | grep -v grep | grep -v -i tmux | grep sshd"

result = os.WEXITSTATUS(os.system(command))

if os.WEXITSTATUS(os.system(command)):
  print "Server failed to start!"
else:
  print "Server successfully started!"

您需要WEXITSTATUS来修复操作系统打电话。只需将sshd替换为服务器.jar在

相关问题 更多 >

    热门问题