0
私は実行して別のpythonスクリプトを殺す単純なpythonサーバーを作成しようとしています。私が抱えている問題は、killコマンドがエラーなしに発行されますが、プロセスを強制終了しないということです。私は手動でkill -INT pidを試してみましたが、結果はありません。サブプロセスを強制終了する
このコマンドはシェルでは動作しますが、pythonでは動作しません。スクリプトがライトを制御し、kill -9がライトをオフにしないので、私は「ソフト」な殺しを行っています。
注:このスクリプトはyocto、競合製品で実行されている
import socket, subprocess
srv = socket.socket()
srv.bind(('', 1340))
srv.listen(3)
while 1:
connection, address = srv.accept()
data = int(connection.recv(1024))
if data == 0:
ps_id = subprocess.check_output('ps|grep python\ /home/root/python/backlight_mod.py', shell=True)
ps_id = ps_id.split(' ')[2]
subprocess.call('kill -INT ' + str(ps_id), shell=True)
print 'Terminated'
elif data == 1:
subprocess.call('python ~/python/backlight_mod.py &', shell=True)
connection.close()
'-l殺す' から出力:ので、あなたのコードは、希望@Peteshにより示唆されるように
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN RTMIN+1 RTMIN+2 RTMIN+3 RTMIN+4 RTMIN+5 RTMIN+6 RTMIN+7 RTMIN+8 RTMIN+9 RTMIN+10 RTMIN+11 RTMIN+12 RTMIN+13 RTMIN+14 RTMIN+15 RTMAX-14 RTMAX-13 RTMAX-12 RTMAX-11 RTMAX-10 RTMAX-9 RTMAX-8 RTMAX-7 RTMAX-6 RTMAX-5 RTMAX-4 RTMAX-3 RTMAX-2 RTMAX-1 RTMAX
実際に要求されたプロセスがリストされていることを確認するには 'ps'の生の出力をチェックし、[' os.kill'](https://docs.python.org/2/library/os .html#os.kill)、別のプロセスを生成するのではなく、プロセスを終了します。 – Petesh