nohup命令使用
1,基本用法
nohup 运行指令 > output.log 2>&1 &
-
> output.log
:将标准输出(stdout)重定向到output.log
文件。 -
2>&1
:将标准错误(stderr)合并到标准输出(即所有输出均写入同一日志文件)。 -
&
:将任务放入后台运行。
(例:nohup bash train_iu_xray.sh > train.log 2>&1 &
执行后:
◦ 终端会输出进程 ID(如 [1] 12345),表示任务已启动。
◦ 所有输出(包括错误信息)会实时写入 train.log 文件。
◦ 用户可直接关闭终端,任务不会中断。
分离标准输出和错误输出:nohup bash train_iu_xray.sh > stdout.log 2> stderr.log &
)
2,日志文件查看
tail -f train.log #实时跟踪日志末尾内容
按 Ctrl + C 退出跟踪模式。
3,查看后台进程
jobs -l # 显示当前终端的后台任务及其进程号
ps aux | grep train_iu_xray.sh # 全局查找相关进程
pgrep -f "train_iu_xray.sh" # 确认任务是否在运行,若存在返回进程号
4,中止任务
kill <PID> # 终止指定进程(如 kill 12345)
kill -9 <PID> # 强制终止(仅当普通 kill 无效时使用)
注:
远程终端断开时 nohup
进程是否中断
-
答案:不会中断。
nohup
的作用是忽略终端挂断信号(SIGHUP
),即使远程连接断开,进程仍会在后台持续运行。验证方法:断开 SSH 后重新登录,检查进程是否仍在运行(命令:ps aux | grep train_iu_xray.sh)