插件窝 干货文章 怎么用linux nohup命令实现退出终端后程序继续后台运行

怎么用linux nohup命令实现退出终端后程序继续后台运行

nohup 运行 输出 bash 648    来源:    2025-04-22

使用Linux nohup命令实现退出终端后程序继续后台运行

nohup命令是Linux系统中用于让程序在用户退出终端后继续运行的实用工具。下面是详细的使用方法:

基本用法

nohup command [arg...] &
  • nohup:保证命令不受挂断信号(SIGHUP)影响
  • &:将命令放入后台运行

完整示例

  1. 基本后台运行

    nohup python script.py &
    
  2. 重定向输出(推荐):

    nohup python script.py > output.log 2>&1 &
    
    • > output.log:将标准输出重定向到output.log文件
    • 2>&1:将标准错误也重定向到标准输出(即同一个文件)

查看运行中的后台作业

jobs -l

或者查看所有进程:

ps aux | grep "script.py"

终止后台进程

  1. 首先找到进程ID:

    ps aux | grep "script.py"
    
  2. 然后终止进程:

    kill -9 [PID]
    

高级用法

  1. 指定输出文件

    nohup command > /path/to/output.log 2>&1 &
    
  2. 忽略所有输出

    nohup command > /dev/null 2>&1 &
    
  3. 结合timeout限制运行时间

    nohup timeout 3600 command > output.log 2>&1 &
    

    (运行1小时后自动终止)

注意事项

  1. 使用nohup时,程序的标准输出和标准错误默认会重定向到nohup.out文件
  2. 建议总是显式指定输出文件,而不是依赖默认行为
  3. 确保程序不需要终端交互,否则可能会出现问题
  4. 对于长时间运行的服务,建议使用systemd或supervisor等专业工具管理

通过以上方法,你可以确保在退出终端后,程序仍能继续在后台运行。