Linux nohup命令详解

前端精髓

共 807字,需浏览 2分钟

 ·

2021-07-01 02:55


通常我们启动 node 服务,终端就会一直被占用着,但是如果关闭了终端,那么服务就会停止,如果想服务一直运行,需要怎么处理呢?


在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,那么程序就会被中止。而这个情况肯定不是我们想看到的,我们希望即使终端关闭,程序依然可以在跑。


这时我们就可以使用 nohup 这个命令。


启动程序

通常运行 node 服务会在终端中输出 console,如果我想把程序输出到终端,我想保存在我指定的路径,并且自定义文件名,要怎么操作?这时我们就可以使用重定向操作 > 。


比如,我现在有个脚本 server.js 我想把它的输出保存在当前目录下的 log.txt 文件中,可以这样运行:

nohup node server.js > log.txt


如果想让程序在后台运行,可以加上 & 符号。但这样运行之后,程序就无影无踪了。想要让程序重新回到终端,可以使用 fg 命令。

nohup node server.js > log.txt &


终止跑在后台的进程,上面有提到,nohup 命令结合 & 符号可以使进程在后台运行,即使关闭了终端依然不受影响。这时,如果想要终止这个进程,要怎么操作呢?


最简单的当属 kill 命令,相信大家用过很多次了。

$ kill -9 PID


那要如何找到进程对应的 pid 呢?我们可以使用 ps 命令。

$ ps -ef


注意:终端可以关闭,但是不可以关机。

浏览 43
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报