SIGHUP
(電話を切る)端末に終了するように指示します。端末はスクリプトの親プロセスであるべきなので、
import os
import signal
os.kill(os.getppid(), signal.SIGHUP)
コマンド名だけでシェルからコマンドを実行する代わりに、 exec
で実行します これにより、シェルが自分自身をプログラムに置き換えます。その後、プログラムが終了すると、ターミナル ウィンドウも閉じます。
つまり
の代わりに$ python ./my_script.py
実行:
$ exec python ./my_script.py