Linux 使用 nohup 后台运行程序
nohup 英文全称 no hang up(不挂起)。当我们把项目部署到服务器上时,只有一直保持 linux 终端的连接才能够运行项目,当我们把连接软件 Xshell 或者 Finalshell 连接工具关掉时,项目也就停止运行。只要用了 nohup 命令,我们的项目就能够一直运行了,此时就实现了我们需求。
易错点:有些人会错拼为 nohub ,比如我… 😅😅😅
检查
查询 nohup 是否安装:
1 | which nohup |
安装方法略。
使用
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
语法格式:
1 | nohup Command [Arg...] [&] |
nohup
:不挂断的运行,并没有后台运行的功能,使命令永久的执行下去,断开 SSH 连接不会影响他的运行。Command
:要执行的命令。Arg
:一些参数,可以指定输出文件。&
:让命令在后台执行,终端退出后命令仍旧执行。
比如:
1 | nohup ./myscript.sh & |
在终端如果看到以下输出,并返回工作序号和 pid,说明运行成功:
1 | [1] 166603 |
输入 jobs
命令查看运行的工作:
1 | jobs |
nohup.out
记录有启动日志:
1 | tail -500 nohup.out # 查看启动日志 |
若要停止运行,我们可以先找到进程号:
1 | ps -aux | grep "myscript.sh" |
第一个号码就是 PID。接下来使用 kill
命令删除。
1 | kill -9 <PID> |
本文参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 半方池水半方田!
评论