一、进入/usr/lib/systemd/system目录创建portal.service,内容为
[Unit]
Description=My Java forking service
After=syslog.target network.target
[Service]
uccessExitStatus=143
User=root
Group=root
Type=forking
ExecStart=/opt/startportal.sh
xecStop=/bin/kill -15 $MAINPID
#Restart=on-failure
[Install]
WantedBy=multi-user.target
二、进入/opt 目录创建startportal.sh 内容为:
#!/bin/bash
JAVA_HOME=/opt/jdk8
WORKDIR=/root/company/portal
cd $WORKDIR
nohup "${JAVA_HOME}/bin/java" $JAVA_OPTIONS -jar company-portal-0.0.1-SNAPSHOT.jar 2&>1 &
注意要使用nohup后台方式,不然systemctl start portal.service会挂住。
jar 文件可以放在任意位置,shell中创建WORKDIR变量即可
三、 执行systemctl命令
systemctl enbale portal.service #开机自启动
systemctl start portal.service
然后使用命令jps检查java进程
jps
启动后可以执行下面命令停止进程
systemctl stop portal.service
使用jps查看java进程是否停止
jps
如果有问题可以执行下面命令排查
systemctl status portal.service
四、 service的原理请参考大神的这篇文章