2016-06-17 2 views
0

Pythonを使用していくつかのサービスステータス(MySQL、Apache2など)を確認したいと思います。私は簡単なスクリプトを書いた。サーバステータスを確認するためのPythonスクリプト

#!/usr/bin/python 
from subprocess import call 

command = raw_input('Please enter service name : ') 

call(["/etc/init.d/"+command, "status"]) 

このスクリプトは、サービスを入力し、その結果を次のように端末に表示するようユーザーに要求します。

● apache2.service - LSB: Apache2 web server 
    Loaded: loaded (/etc/init.d/apache2) 
    Drop-In: /lib/systemd/system/apache2.service.d 
      └─apache2-systemd.conf 
    Active: active (running) since සි 2016-06-17 09:16:10 IST; 5h 43min ago 
    Docs: man:systemd-sysv-generator(8) 
    Process: 2313 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS) 
    Process: 1560 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) 
    CGroup: /system.slice/apache2.service 
      ├─1941 /usr/sbin/apache2 -k start 
      ├─2332 /usr/sbin/apache2 -k start 
      ├─2333 /usr/sbin/apache2 -k start 
      ├─2334 /usr/sbin/apache2 -k start 
      ├─2335 /usr/sbin/apache2 -k start 
      └─2336 /usr/sbin/apache2 -k start 

は、私はちょうどそれが実行されている場合、各サービスActive: active (running)この行を取り、確認したいと私は聞いてしたくない場合は、それを開始したいです。

これを行うのに役立つ人がいますか?事前にありがとう

+1

何のpythonバージョンを使用していますか? – wind85

+0

こんにちは、Python 2.6.6 –

答えて

1

私はあなたが望むものは出力をキャプチャすると思います。

status = subprocess.check_output("YOUR COMMAND", shell=True) 
if ("Active: active (running)" in status): 
    ... 
+2

Daydov彼はpython2.6を使用していますが、まだcheck_outputメソッドがありません。 – wind85

関連する問題