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