linux添加守护进程

问题

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,进程就结束了,感觉很懵比,我在其他服务器没有加上./依然是能独立运行的守护进程。

参考资料:https://www.cnblogs.com/xianlai-huang/p/6543751.html

posted @ 2018-01-03 10:00  shenjie2017  阅读(1204)  评论(0编辑  收藏  举报