CentOS7+启动/关闭Java后台程序

1.启动

# 以服务方式在后台运行,退出命令窗口不关闭
nohup java -jar XXX.jar >jarRun.log 2>&1&
# 直接运行 ,退出窗口登录将关闭,(一般不这么用)
java -jar XXX.jar

2.停止

ps aux | grep XXX.jar
#kill 进程id
kill 8288

grep 是当前窗口查询过滤进程


3.详解

  1. nohup
意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
 用 nohup 命令执行时,若未指定日志输出,默认被输出至 nohup.out 文件中
  1. 日志输出模式
0:标准输入(一般指代键盘)
 1:标准输出(一般指代终端控制台窗口)
 2:标准错误输出
nohup java -jar XXX.jar >jarRun.log 2>&1&
# nohup不挂断 
# >jarRun.log 2>标准错误输出日志 至jarRun.log文件
# &1继续输出到标准输出,&是为了让系统继续识别是输出模式
# & 最后一个& 表示在后台运行

4.运行不生效问题

根据以下命令,按需设置防火墙(不建议直接关闭防火墙)
开关防火墙

# 查看防火墙状态
systemctl status firewalld 
# 关闭防火墙
systemctl stop firewalld
# 启动防火墙
systemctl start firewalld
# 开机禁用防火墙
systemctl disable firewalld
# 开机启用防火墙
systemctl enable firewalld

开放端口

# 开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 开放443端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
# 开放mysql端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 开放自定义端口
firewall-cmd --zone=public --add-port=8810/tcp --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent

# 重新载入,生效开放的端口
firewall-cmd --reload

# 验证
firewall-cmd --zone=public --query-port=8888/tcp

关闭端口

firewall-cmd --zone=public --query-port=8888/tcp