![本当にnohupを使用する必要がありますか? [コピー]](https://linux33.com/image/135851/%E6%9C%AC%E5%BD%93%E3%81%ABnohup%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
私のスクリプトは私のサーバーのバックグラウンドで実行されたいです。私はnohupに怒っています。私のscript.pyがあります。私は次のように実行します:
python3 script.py&
端末を閉じてもバックグラウンドで実行されます。このスクリプトは0から始まり、毎秒ファイルに数字を書き込みます/tmp/aaa.txt
。サーバーを切断して再接続しましたが、数が3000を超えました(50分以上)。それで私の質問は「本当に使うべきですかnohup
?」です。はい/いいえの場合はなぜですか?
# hostnamectl
Static hostname: my-server
Icon name: computer-vm
Chassis: vm
Machine ID: XXXX
Boot ID: XXXX
Virtualization: vmware
Operating System: Ubuntu 16.04.3 LTS
Kernel: Linux 4.4.0-116-generic
Architecture: x86-64
私のスクリプトscript.py
:
import time
i = 0
while True:
f = open('aaa.txt', 'a+')
f.write('Doing somethign: {0}\n'.format(i))
f.close()
i = i + 1
time.sleep(1)
答え1
これはbashオプションによって制御されますhuponexit
。設定を確認してください。 "on"に設定すると、終了時にすべての子プロセスにため息をつきます。そうでない場合は、引き続き実行する必要があります。
$ shopt | grep huponexit
huponexit off