どのようなチェックインLinuxの場合はPythonプロセスだ。[重複]
質問
この質問に答えはこちら
のみ nice 方がその場で発音を確認することがで
import sys
import os
try:
os.kill(int(sys.argv[1]), 0)
print "Running"
except:
print "Not running"
(源)
です。な仕組みになっているとの過程ができます。
解決
マークの答えは、このような理由から、/procファイルシステムがございます。のためにもコピー/pasteable:
>>> import os.path
>>> os.path.exists("/proc/0")
False
>>> os.path.exists("/proc/12")
True
他のヒント
linuxでご覧いただけィレクトリ内のディレクトリの/proc/$PIDに関する情報を取得するため。この場合、ディレクトリが存在すると、この処理を走っています。
ので作業はPOSIXシステムは見る /proc
ファイルシステムとしての人の考えで、くわかれば今度は存在しない場合には、代わりに
しかし: os.kill
も失敗しない場合は利用を許可している信号のです。すことが必要なようなもの:
import sys
import os
import errno
try:
os.kill(int(sys.argv[1]), 0)
except OSError, err:
if err.errno == errno.ESRCH:
print "Not running"
elif err.errno == errno.EPERM:
print "No permission to signal this process!"
else:
print "Unknown error"
else:
print "Running"
こちらのソリューションを解けてはいけません:
import os
import subprocess
import re
def findThisProcess( process_name ):
ps = subprocess.Popen("ps -eaf | grep "+process_name, shell=True, stdout=subprocess.PIPE)
output = ps.stdout.read()
ps.stdout.close()
ps.wait()
return output
# This is the function you can use
def isThisRunning( process_name ):
output = findThisProcess( process_name )
if re.search('path/of/process'+process_name, output) is None:
return False
else:
return True
# Example of how to use
if isThisRunning('some_process') == False:
print("Not running")
else:
print("Running!")
私はPython+Linuxのピので、このような最適です。する私の問題は、今まで他人を助けます。
//です。な仕組みになっているとの過程ができます。
あり、この作業を他のLinuxの配布するこの/procではないが簡単にUnixベースのシステムが、FreeBSD、OSX).
しんでいただけるようにPID溶も脆弱である。の場合は処理を行う状況のチェックが終了した場合、そのPIDを行い、再利用できる新しい工程です。なので、IMO ShaChris23のPython+Linuxで留守にした最適なソリューションの問題です。でも仕様は、場合によってはプロセスの質問は、独自に認識でそのコマンド文字列、またはあなたが一つだけ走行します。
その結果が、先ほど任天堂さんのプロセスをカウントの指定された名前
import os
processname = 'somprocessname'
tmp = os.popen("ps -Af").read()
proccount = tmp.count(processname)
if proccount > 0:
print(proccount, ' processes running of ', processname, 'type')
私の問題はバージョン(例えば、機能についても見られ部分文字列のようなもの---) あっ、自分自身で修理技術のデモンストレーションMaksym Kozlenko:
#proc -> name/id of the process
#id = 1 -> search for pid
#id = 0 -> search for name (default)
def process_exists(proc, id = 0):
ps = subprocess.Popen("ps -A", shell=True, stdout=subprocess.PIPE)
ps_pid = ps.pid
output = ps.stdout.read()
ps.stdout.close()
ps.wait()
for line in output.split("\n"):
if line != "" and line != None:
fields = line.split()
pid = fields[0]
pname = fields[3]
if(id == 0):
if(pname == proc):
return True
else:
if(pid == proc):
return True
return False
と思うので、信頼性、読みやすくなり、また、オプションをチェックのためのプロセスidまたは名です。
Sligtly修理技術のデモンストレーションShaChris23ます。かどうかをチェックしますproc_name値が認められる工程に引数の文字列(例えば、Pythonスクリプトを実行python):
def process_exists(proc_name):
ps = subprocess.Popen("ps ax -o pid= -o args= ", shell=True, stdout=subprocess.PIPE)
ps_pid = ps.pid
output = ps.stdout.read()
ps.stdout.close()
ps.wait()
for line in output.split("\n"):
res = re.findall("(\d+) (.*)", line)
if res:
pid = int(res[0][0])
if proc_name in res[0][1] and pid != os.getpid() and pid != ps_pid:
return True
return False