nohup 命令在 Linux 系统中用于运行某个命令或程序,使其在用户注销或关闭终端后继续运行。这个命令的名称来自 “no hang up” 的缩写,意味着 “不挂断”。当你使用 nohup 命令时,标准输出和标准错误通常会被重定向到 nohup.out 文件中,除非你指定了其他的输出文件。


  • 如果你想在后台运行 Python 脚本并且让它在关闭终端后继续运行,可以使用以下命令:

    
    nohup python your_script.py 
    

    这里,your_script.py 是你的 Python 脚本文件名。这个命令会在后台启动脚本,并且输出会被重定向到 nohup.out 文件中。如果想要将输出重定向到特定的日志文件,可以使用如下命令:

    
    nohup python your_script.py > output.log 2>&1 &
    

    在这个命令中,> 是重定向标准输出到 output.log 文件,2>&1 是将标准错误也重定向到标准输出(即同一个日志文件)。

  • 如果你的 Python 脚本在执行过程中需要实时输出,比如长时间运行的任务或者服务器程序,你可能需要关闭 Python 的输出缓冲,这可以通过在 python 命令后添加 -u 选项来实现:

    
    nohup python -u your_script.py > output.log 2>&1 &
    

    这样,你的脚本的输出就会被实时写入 output.log 文件,而不会因为缓冲而延迟。

  • 输出到无底洞:运行时产生的很多很大又没价值的标准输出和标准错误可以定向到/dev/null,任何东西都可以定向到这里,但无法打开,例如:

    nohup python your_script.py > /dev/null 2>&1 &
    
  • 最后,如果你需要查看后台运行的 nohup 进程,可以使用 ps 命令,或者使用 tail -f output.log 来实时查看日志文件的内容。如果需要终止后台进程,可以使用 kill 命令加上进程的 PID。PID 可以通过 ps aux | grep your_script.py 命令找到,或者如果 nohup 命令将 PID 写入了文件,也可以从文件中读取。


创作不易,麻烦点点赞和关注咯!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐