コントロール C を Mac 端末に送信する必要がある Python スクリプトがあります。プレーンテキスト「^C」を送信しようとしましたが、端末がコマンドを認識しないと返ってきました。(pythonが作成する疑似端末を意味する端末)
基本的に、ターミナルを使用して古い Unix Executable を実行していますが、これを正常に終了するために考えられる唯一の方法は、割り込み信号を送信することです。コントロール C を押したと端末に思わせる方法はありますか?
前もって感謝します!
を使用して PID を取得できる場合は、プロセスに SIGINT シグナルを明示的に送信できますos.kill
。
os.kill(pid, signal.SIGINT)
これには、プロセス PID を取得するためにスクリプトをインストルメント化する必要がありますが、「ctrl-c」の動作をエミュレートする最良の方法です。
を使用してプロセスを開くと、次subprocess
のPopen
ような制御信号を送信できるはずです。
proc.send_signal(signal.SIGINT)
import signal
を取得する必要がありますSIGINT
。