nohup是Linux中一个非常有用的命令,它可以让进程在用户注销(logout)或SSH会话中断后继续运行。以下是详细使用方法:
nohup command [arguments] &
nohup
- 使进程忽略挂起信号(SIGHUP)&
- 将进程放入后台运行运行Python脚本并保持后台执行:
nohup python3 script.py > output.log 2>&1 &
运行Java程序:
nohup java -jar app.jar > app.log 2>&1 &
> output.log
- 将标准输出重定向到文件2>&1
- 将标准错误(2)重定向到标准输出(1),即也写入日志文件&
- 后台运行jobs -l # 查看当前会话的后台作业
ps aux | grep command_name # 查看所有相关进程
首先找到进程ID:
ps aux | grep command_name
然后终止进程:
kill -9 PID
除了nohup,还可以考虑使用:
- screen
或tmux
- 终端多路复用器
- disown
- 从当前shell中移除作业
- systemd
- 对于长期运行的服务
nohup.out
文件,建议明确指定输出文件通过合理使用nohup,可以确保SSH会话断开后关键进程继续运行,非常适合远程服务器管理场景。