场景:我现在需要跑脚本批量处理一些数据,但是我又不想盯着控制台看这个脚本的输出结果,想把这些输出结果记录到一个日志文件里面
方案:可以使用 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:如果进程挂不起来,可能是端口被占用了,自行排查处理便可