0
経由で走っ:Pythonは:プロセスには、Ctrl-Cを渡すには、私が持っている私のPythonスクリプトではos.spawnvpe
cmdが、私は対話的mail
を実行してのpythonに戻ることができます
['mail', '-b', emails,...]
のようなものがある
os.spawnvpe(os.P_WAIT, cmd[0], cmd, os.environ)
メール終了後のスクリプト。
唯一の問題はCtrl-Cを押した場合です。 mail
が実行されている間に、mail
だけが反応し、Pythonで例外が発生しないようにする必要がありますが、「mail
とPythonスクリプトの両方が反応します」(*)と思われます。それを達成することは可能ですか?
^C
(Interrupt -- one more to kill letter)
Traceback (most recent call last):
File "./tutster.py", line 104, in <module>
cmd(cmd_run)
File "./tutster.py", line 85, in cmd
code = os.spawnvpe(os.P_WAIT, cmd[0], cmd, os.environ)
File "/usr/lib/python3.4/os.py", line 868, in spawnvpe
return _spawnvef(mode, file, args, env, execvpe)
File "/usr/lib/python3.4/os.py", line 819, in _spawnvef
wpid, sts = waitpid(pid, 0)
KeyboardInterrupt
、その後、メールは実際には(意図がそれを殺すことだったので、すでに悪いです)送信されますが、体は空で:
(*)正確には何コンソール上に起こることですコンテンツはbin拡張子付きの添付ファイルとして送信されます。
try:
os.spawnvpe(os.P_WAIT, cmd[0], cmd, os.environ)
except KeyboardInterrupt:
pass
ない良い:Pythonは例外をスローしませんが、メールを殺すために不可能だ、それは以前のように送信される –
Python以外で実行するとメールはどのように振る舞いますか?最初のCtrl-Cで – lolopop
が表示されます(割り込み - 文字を殺すもう1つの割り込み)。 –