用xshell让.jar程序在后台运行(nohup与&)

目的

在xshell中运行.jar服务后,在关闭xshell后服务也停止了。需要让.jar服务在后台运行,关闭xshell不影响服务的运行。

解决方法

使用命令:nohup command &
其中:nohup就是不挂起的意思( no hang up)
【如:nohup java -Dspring.datasource.url="jdbc:postgresql://ip:5432/数据库名" -jar xxx.jar &
运行后会在当前所在文件夹下生成一个nohup.out文件,里面记录之前在终端屏幕上出现的运行信息。
用xshell让.jar程序在后台运行(nohup与&)
启动后访问系统服务,与不使用nohup启动一样,可以正常访问。

说明

(1) nohup
加在一个命令的最前面,表示不挂断的运行命令。
(2) &
加在一个命令的最后面,表示这个命令放在后台执行。
(3) jobs
查看当前有多少在后台运行的命令。(只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。如果将他们写到 .sh 脚本中,然后执行脚本,是显示不出来的)
(4) ps -aux|grep java
这是查看进程常用的命令,也可以使用 ps -ef|grep java。
a: 显示所有程序 u: 以用户为主的格式来显示 x: 显示所有程序,不以终端机来区分
(5)ps 和 jobs区别
jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。