大家很多时候都编写过控制台程序。如果我们用Shell 客户端远程连接linux服务的时候,启动了一个控制台程序,发现当关闭Shell客户端的时候,控制台程序也跟着关闭了。
如果在关闭Shell客户端后,启动的控制台程序继续运行呢。那我们可以编写Shell程序,然后通过Shell程序来启动。
假设我们写的控制程序名称叫 TestApp ,控制台的内容输出到 testapp.out 文件里面。
1)在文本编辑器里面写上下面的代码:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./
ulimit -c unlimited
nohup ./TestApp >testapp.out 2>&1 &
2)保存成 StartApp.sh
3)设置StartApp.sh 的权限。 chmod 755 StartApp.sh 使之有执行的权限。
4)然后,在控制台里面运行 ./StartApp.sh 就可以后台启动控制台程序了。
5)运行成功!关闭掉Shell客户端,也不怕程序同时被关闭了。不相信的朋友可以用 top 命令查看。
上面脱离Shell客户端运行主要用了 nohup 命令。
本人的shell 程序分了三行:
第一行把当前目录配置依赖的库查找路径。
第二行把dump程序文件的core file size修改成无大小限制。
第三行用nohup 命令启动程序。
这个命令详解请看这边的解释: nohup