linux下使用jobs查看不到用nohup方式后台运行的jar程序

Dean_King 发布于 2016/06/01 13:06
阅读 867
收藏 0

可执行的jar文件,是一个服务器程序,如果使用java -jar xxx 方式运行,命令行会一直被占用,打印log,并支持输入软件提供的命令,由于它占用命令行,不能做别的事,所以我使用nohup命令,让程序运行到后台,命令如下:

nohup java -jar xxx &



可以运行,可以在top里找到这个进程,但是jobs命令是空的,没有后台进程,那我怎么才能把这个软件在唤到前台,因为我现在想输入些命令,来控制这个软件。

加载中
1
vikde
vikde

现在我在服务端运行基本也是这两个方案:

1、nohup:简单,但是不好管理,输入的内容nohup.out会越来越大,记得清除

2、screen:入门有点难度,这个管理方便些。指定好screen name。多程序的时候很好用,不过这个输出只能看到当前的。

不管那种,减少输出都是不会错的,print很消耗性能的

0
Feng_Yu
Feng_Yu

因为jobs是看当前session的jobs,如果你都退出shell了,那么当时的session就被销毁了,自然jobs什么都看不到。

你只能手工kill掉pid了。

或者使用screen/tmux这样的session保持软件运行命令。

当然,如果你的程序要作为长期的服务运行,那么我建议你写成service(upstart, systemd, init.d)脚本。这个是每个SA的基本功。

0
Dean_King
Dean_King
多谢各位 ,我采用了nohup,每次要关闭时,用kill
返回顶部
顶部