本当にnohupを使用する必要がありますか? [コピー]

本当にnohupを使用する必要がありますか? [コピー]

私のスクリプトは私のサーバーのバックグラウンドで実行されたいです。私は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

おすすめ記事