1.直接运行
最近在自己的服务器上玩,我的项目打包成jar后,在Linux使用 java - jar xxx.jar,可以正常运行,但是我的shell是被锁定的,我无法进行其他的操作,除非新打开另一个终端或者使用Ctrl+C结束当前的程序,显然这样不符合我的需求:
java -jar server-0.0.1-SNAPSHOT.jar
2.后台运行
在命令后面加上 & ,那么这个进程就可以在后台运行了:
java -jar server-0.0.1-SNAPSHOT.jar &
但是还存在一个问题,一旦我将这个shell窗口关闭,这个进程就会终止:
我是需要这个项目一直运行着的,所以显然这种方式也无法满足我的需求。
3.nohup方式运行
nohup表示不挂断运行命令,即使shell关闭了,程序依然会在后台运行。
nohup java -jar server-0.0.1-SNAPSHOT.jar >log.log &
其中的>log.log表示将程序的输出重定向到log.log文件中,默认的情况下,是输出到当前目录下的nohup.out文件中。
当我退出当前shell,打开新的窗口,再看可以发现这个进程依然在执行:
那么我们要怎么才能让这个进程终止呢,很简单,使用kill命令就好了: