2

コントロール C を Mac 端末に送信する必要がある Python スクリプトがあります。プレーンテキスト「^C」を送信しようとしましたが、端末がコマンドを認識しないと返ってきました。(pythonが作成する疑似端末を意味する端末)

基本的に、ターミナルを使用して古い Unix Executable を実行していますが、これを正常に終了するために考えられる唯一の方法は、割り込み信号を送信することです。コントロール C を押したと端末に思わせる方法はありますか?

前もって感謝します!

4

2 に答える 2

3

を使用して PID を取得できる場合は、プロセスに SIGINT シグナルを明示的に送信できますos.kill

os.kill(pid, signal.SIGINT)

これには、プロセス PID を取得するためにスクリプトをインストルメント化する必要がありますが、「ctrl-c」の動作をエミュレートする最良の方法です。

于 2012-07-19T22:33:27.993 に答える
0

を使用してプロセスを開くと、次subprocessPopenような制御信号を送信できるはずです。

proc.send_signal(signal.SIGINT)

import signalを取得する必要がありますSIGINT

于 2012-07-19T22:42:42.750 に答える