0

openvpn pid を取得して、実行中かどうかを確認しようとしていますが、このコードは機能していないようです。出力が「432」の場合、「pid」は整数ではないことがわかります

import psutil
import time
import os
import subprocess

proc = subprocess.Popen(["pgrep openvpn"], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
out = out.strip()
print ("openvpn",out)
pid = out
time.sleep(5)
while True:
  if psutil.pid_exists(pid):
    print "a process with pid %d exists" % pid
    time.sleep(120)
  else:
    print "a process with pid %d does not exist" % pid
    time.sleep(5)
    os.system("")
4

1 に答える 1

1

'432'整数ではありません。数字を保持する文字列です。を使用して整数に変換しint()ます。

于 2016-09-11T19:11:21.470 に答える