31 nohup使用介绍
在 Linux/Unix 系统中,nohup
是一个常用的命令,结合 sh
或 bash
可以用于后台运行脚本 bash.sh
,即使关闭终端会话,脚本仍然继续运行。
命令解析
nohup sh bash.sh &
nohup
:- 忽略
HUP
信号(挂起信号),即使关闭终端,进程不会停止。 - 输出默认重定向到
nohup.out
文件。
- 忽略
sh bash.sh
:- 运行
bash.sh
脚本,使用sh
命令。
- 运行
&
:- 将命令放入后台运行,释放终端。
常见用法
-
后台运行脚本并保存输出:
nohup sh bash.sh > output.log 2>&1 &
> output.log
:将标准输出重定向到output.log
文件。2>&1
:将错误输出也重定向到output.log
。
-
指定自定义 Shell 解释器: 如果脚本需要用
bash
解释器运行:nohup bash bash.sh > output.log 2>&1 &
-
检查进程状态:
-
查看是否在运行:
ps aux | grep bash.sh
-
如果需要终止进程:
kill -9 <PID>
-
-
使用带路径的脚本: 如果
bash.sh
不在当前目录,可以指定完整路径:nohup sh /path/to/bash.sh > /path/to/output.log 2>&1 &
注意事项
-
权限:
-
确保脚本有执行权限:
chmod +x bash.sh
-
-
输出文件:
- 默认输出会写入
nohup.out
,如果没有重定向,确保当前目录有写权限。
- 默认输出会写入
-
验证是否正在运行:
-
使用
jobs
查看当前用户的后台任务:
jobs -l
-
通过这种方式,nohup
可以非常方便地在后台运行脚本,而不受终端关闭的影响。
No previous page