目录
- 1. 基本知识
- 2. Demo
1. 基本知识
Unix/Linux 命令,用于在后台运行程序,并确保它在用户退出或注销后继续运行
nohup 的主要作用是使程序在终端会话结束后继续运行,这对需要长时间执行的任务特别有用
基本的用法如下:
nohup command [arguments] &
命令参数如下:
- command 是要执行的命令
- arguments 是传递给命令的参数
- & 将命令放到后台运行
主要的作用如下:
-
后台运行任务:即使退出终端或注销系统,程序仍然会继续执行
-
忽略挂起信号:nohup 忽略 SIGHUP(挂起信号),防止因终端关闭而中断程序运行
-
输出重定向:nohup 默认将程序的输出(stdout 和 stderr)重定向到 nohup.out 文件
如果不需要这个文件,可以手动指定输出位置
基本的示例如下:
nohup python long_running_script.py > output.log 2>&1 &
> output.log
将标准输出重定向到 output.log 文件- 2>&1 将标准错误也重定向到标准输出(即 output.log 文件中)
实际中的运行截图如下:nohup python3 run.py &
2. Demo
后台运行过程中如果想要取消进程
ps aux | grep long_running_script.py
相应终止对应的进程:kill -9 PID
截图如下:
如果只想丢弃标准输出而保留错误输出:nohup command > /dev/null &
如果丢弃标准输出和标准错误:nohup command > /dev/null 2>&1 &
具体的示例如下:nohup python long_running_script.py > /dev/null 2>&1 &