GNOMEターミナルサブプロセスを殺すためにどのよう:私は3つの*の.pyスクリプトが命名した
- terminal_starter、
- subprocess_in_terminal、それぞれ次のコードで
- ctrlc_sender
:
l terminal_starter.py
import subprocess
import os
p = subprocess.Popen(['gnome-terminal -e "python subprocess_in_terminal.py"'], shell=True)
gpid = os.getpgrp()
ppid = os.getpid()
p1 = subprocess.Popen(["python ctrlc_sender.py " + str(gpid) + " " + str(ppid)], shell=True)
while 1:
pass
subprocess_in_terminal.py
import time
while 1:
print "Subprocess in terminal."
time.sleep(1)
ctrlc_sender.py
import signal
import os
import sys
import time
gpid = sys.argv[1]
ppid = sys.argv[2]
for i in range(10):
print "Killer says: I will kill " + gpid + "and " + ppid
time.sleep(1)
os.killpg(int(gpid), signal.SIGTERM)
os.kill(int(ppid), signal.SIGTERM)
私はsubprocess_in_terminal.pyを殺したいが、私はできませんしています。
私はUbuntu 16.04 LTSとPython 2.7でこれらのスクリプトを実行しています。
ご協力いただければ幸いです。
Ctrl-Cは 'SIGTERM'ではなく' SIGINT'を送信することに注意してください。 – melpomene