Linux下如何让jar包程序在后台一直执行
方法一
nohup java -jar xxx.jar &
&
:使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。
nohub
:nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。默认让程序控制台输出转移到nohub.out文件,位置在当前命令所在目录。
你也可以更改nohub.out文件为其他,比如:
nohup java -jar xxx.jar >out.file 2>&1 &
-
>out.file1
是将前面命令的输出重定向到 out.file 文件,即输出内容不打印到屏幕上,而是输出到 out.file 文件中。 -
2>&1
是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。 -
最后一个
&
, 是让该命令在后台执行。
如果你在执行命令后提示未找到命令,换下一种方法。
方法二
先在执行的命令后加 &
,>out.log
转移控制台输出到文件可加可不加:
java -jar xxx.jar >out.log &
还有最关键的一步,在退出shell会话时,不可直接关闭程序,应输入命令:
exit
直接点关闭程序按钮关闭终端,会断掉该命令所对应的session,导致当前后台进程被通知需要一起shutdown。这或许是你此刻不成功的原因吧~
参考资料 Linux jar包后台运行
版权声明:凡未经本网站书面授权,任何媒体、网站及个人不得转载、复制、重制、改动、展示或使用本网站的局部或全部的内容或服务,或在非本网站所属服务器上建立镜像。如果已转载,请自行删除。同时,我们保留进一步追究相关行为主体的法律责任的权利。我们希望与各媒体合作,签订著作权有偿使用许可合同,故转载方须书面/邮件申请,以待商榷。