java -jar 启动服务后,关闭命令窗口后服务停止
问题:当我们用java -jar命令启动服务后,只有一直保持Xshell的窗口开启且正常连接服务器时才能访问服务,当关闭命令窗口时,服务会停止运行
解决:使用nohup命令启动服务
nohup(no hang up):不挂起
只要通过nohup命令启动服务,服务会一直运行
1.安装nohup,查询nohup是否安装
java
# 执行命令
which nohup
java
# 如果返回下面结果,表示已经安装过
/usr/bin/nohup
2.配置nohup路径
java
vi ~/.bash_profile
i键编辑,用键盘方向键移动,找到PATH= $ PATH:$ HOME/bin,后面加上:/usr/bin
按左上角esc退出编辑,:wq保存并退出
3.刷新配置变量,立即生效
java
source ~/.bash_profile
4.安装成功,查看nohup版本
java
nohup --version
出现下面提示,表示安装成功
java
[root@worker04 ~]# nohup --version
nohup (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
5.服务启动,执行启动命令
java
# Command:要执行的命令。
# Arg:一些参数,可以指定输出文件。
# &:让命令在后台执行,终端退出后命令仍旧执行。
nohup Command [ Arg ... ] [ & ]
例如:
java
nohup java -jar /home/jgt/jgt-admin.jar &
或者,将 nohup 的日志输出到 /dev/null,这个目录会让所有到它这的信息自动消失
java
nohup java -jar /home/jgt/jgt-admin.jar > /dev/null 2> /dev/null &
6.服务停止,找到对应服务进程的pid,kill掉进程
java
ps -ef | grep jgt-admin.jar
例如:
java
[root@worker04 ~]# ps -ef | grep jgt-admin.jar
root 2626 19488 0 09:53 pts/0 00:00:00 grep --color=auto jgt-admin.jar
root 29535 1 3 09:28 ? 00:00:57 java -jar /home/jgt/jgt-admin.jar
停止服务:
java
kill -9 29535