0

ssh serverPythonを使用してシステム内ののステータスを確認する方法があるかどうかを知りたいと思いました。サーバーがアクティブかどうか(はい/いいえ)を知りたいだけです。それが単なるLinuxコマンドであっても、Pythonのpopenfromsubprocessモジュールを使用してそのコマンドを実行できるようにするのに役立ちます。

ありがとう

PS:私はで使用openssh-serverしていますlinux (ubuntu 12.04)

4

2 に答える 2

1

プロセスが実行されているかどうかを確認する一般的な方法が必要な場合は、を使用できます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.
于 2013-03-26T14:07:28.407 に答える
0

service sshd status(たとえば、経由で)実行Popen()し、それがあなたに言うことを読んでください。

于 2013-03-26T14:01:47.937 に答える