问题
linux(redhat)下,执行了
baseinfo.sh>baseinfo.log 2>&1 &
,系统显示是后台进程,退出ssh后,该进程被终止,导致进程无法长时间运行
解决方案
nohup baseinfo.sh>baseinfo.log 2>&1 &
添加如下代码,发现baseinfo.sh已经是后台进程,按理说,baseinfo.sh已经是后台进程了,加上nohup也能正常运行了,但是不知道为什么,我直接关掉ssh后,baseinfo.sh进程也退出了,后面我们使用了如下代码可以成功的添加了后台进程
nohup ./baseinfo.sh>baseinfo.log 2>&1 &
这里需要说明一下,将./baseinfo.sh
的结果将标准输出的结果输出到baseinfo.log,如果不想要输出结果,可以将结果重定向到/dev/null丢弃输出结果,2>&1表明是将错误输出按照标准输出的方式同样处理,也就是将标准输出和错误输出 都输出到baseinfo.log中,最后一个&表示是一个后台进程
这里比上一条指令没有多什么,就多了一个./
,但是为什么没加./
时,退出ssh,进程就结束了,感觉很懵比,我在其他服务器没有加上./
依然是能独立运行的守护进程。