ssh server
Pythonを使用してシステム内ののステータスを確認する方法があるかどうかを知りたいと思いました。サーバーがアクティブかどうか(はい/いいえ)を知りたいだけです。それが単なるLinuxコマンドであっても、Pythonのpopen
fromsubprocess
モジュールを使用してそのコマンドを実行できるようにするのに役立ちます。
ありがとう
PS:私はで使用openssh-server
していますlinux (ubuntu 12.04)
ssh server
Pythonを使用してシステム内ののステータスを確認する方法があるかどうかを知りたいと思いました。サーバーがアクティブかどうか(はい/いいえ)を知りたいだけです。それが単なるLinuxコマンドであっても、Pythonのpopen
fromsubprocess
モジュールを使用してそのコマンドを実行できるようにするのに役立ちます。
ありがとう
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
(たとえば、経由で)実行Popen()
し、それがあなたに言うことを読んでください。