我真的需要使用 nohup 吗?

我真的需要使用 nohup 吗?

我想让我的脚本在我的服务器后台运行。我对 nohup 感到愤怒。我有我的 script.py。我这样运行:

python3 script.py&

即使我关闭终端,它也会在后台运行。该脚本每秒将数字写入文件/tmp/aaa.txt,从 0 开始。我与服务器断开连接并重新连接到它,结果显示数字超过 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

相关内容