Centos 7将java jar包自定义开机启动服务
1. 先上 jar包的启动脚本
vim service.sh
#!/bin/bash
# 需要变更的参数
# 先查看java绝对路径:which java
java=/data/app/jdk/bin/java
STARTUP="$java -server -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms512m -Xmx512m -Xmn128m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=dev -jar"
PROJECT="odms"
LISTEN_PORT="8092"
JAR=`ls /data/www/$PROJECT-$LISTEN_PORT/*.jar -th |head -1`
cd /data/www/$PROJECT-$LISTEN_PORT
function start () {
nohup $STARTUP $JAR >> /data/logs/$PROJECT-$LISTEN_PORT/$PROJECT.log 2>&1&
exit 0
}
function stop () {
PID=`ps aux|grep "$JAR"|grep -v grep|awk '{print $2}'`
if [ -z $PID ];then
exit 0
else
kill -9 $PID
fi
}
function reload () {
PID=`ps aux|grep "$JAR"|grep -v grep|awk '{print $2}'`
if [ -z $PID ];then
exit 0
else
kill -1 $PID
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
sleep 3
start
;;
*)
echo "start|stop|reload|restart"
;;
esac
写好脚本之后,需要为脚本添加可执行权限
chmod +x service.sh
2. 自定义开机启动命令
vim /usr/lib/systemd/system/odms.service
[Unit]
Description=Java
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
User=dev
Group=dev
Type=forking
ExecStartPre=/bin/cd /data/www/odms-8092/
ExecStart=/data/www/odms-8092/service.sh start
ExecReload=/data/www/odms-8092/service.sh reload
ExecStop=/data/www/odms-8092/service.sh stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
3. 添加开机启动服务
#添加开机启动服务
systemctl enable odms
# 启动服务
systemctl start odms
#关闭服务
systemctl stop odms
# 重启服务
systemctl restart odms
#查看服务状态
systemctl status doms
#取消开机启动
systemctl disable odms