菜鸟笔记
提升您的技术认知

Nohup后台运行程序

场景:我现在需要跑脚本批量处理一些数据,但是我又不想盯着控制台看这个脚本的输出结果,想把这些输出结果记录到一个日志文件里面

方案:可以使用 Linux 的 nohup 命令,把进程挂起,后台执行

用法:

$ nohup XXXXXX.sh >> /runtime/deletedata.log &

运行结果(这个数字是进程号):

>> [1] 13120

有时候可能会报一个提示:

$ nohup: ignoring input and redirecting stderr to stdout

这个影响不大,不用紧张,也可以加多一个 2>&1 就不会出现这个问题

用法:

$ nohup XXXXXX.sh >> /runtime/deletedata.log 2>&1 &

TIPS:命令最后面的 & 符号是切换到后台去跑,退出终端也不会退出任务进程

运行这个命令之后呢,会输出一个进程号,类似上面的输出,可以使用 top 命令查看运行中的进程,也可以用 ps -aux 查看进程

想要终止这个进程的话只能杀死这个进程,使用 kill 指令处理

$ kill -9 进程号

TIPS:如果进程挂不起来,可能是端口被占用了,自行排查处理便可