systemctl java jar 添加jar文件開機啟動項


轉載自:https://blog.csdn.net/slqgenius/article/details/85778578

 

一,原由

因為使用 nohup 和 & 這種方式啟動jar包的話,只會放在后台里面執行,如果某天,人為或機器故障等原因,觸發重啟了。那樣程序就會關閉,不清楚系統的人,可能都不知道這個需要啟動。

所以,這里使用Centos7系統自帶的systemctl管理實現一個開啟自動管理

 

二,創建系統文件

# 路徑一定要寫清楚,systemctl要根據這個來編寫

vim /etc/init.d/zuul

#zuul文件的內容 

  1. #!/bin/bash
  2. PID_PATH=/var/run/zuul-service.pid
  3. Service_Name=zuul-service
  4.  
  5. case "$1" in
  6. start)
  7. /zuul-service/zuul-start.sh
  8. ;;
  9. stop)
  10. kill $(cat ${PID_PATH})
  11. rm ${PID_PATH}
  12. ;;
  13. restart)
  14. $0 stop
  15. $0 start
  16. ;;
  17. status)
  18. if [ -e ${PID_PATH} ];then
  19. echo "${Service_Name} is running, pid=$(cat ${PID_PATH})"
  20. else
  21. echo "${Service_Name} is NOT running"
  22. exit 1
  23. fi
  24. ;;
  25. *)
  26. echo "Usage: $0 {start|stop|status|restart}"
  27. esac
  28.  
  29. exit 0

 #賦予執行權限

chmod a+x /etc/init.d/zuul

 

三,創建啟動腳本

vim /zuul-service/zuul-start.sh

#zuul-start文件的內容 

 
  1. #!/bin/bash
  2. #啟動命令
  3. /usr/bin/java -jar /zuul-service/rocket-zuul-0.0.1-SNAPSHOT.jar >> /zuul-service/zuul.log 2>&1 &
  4. #將pid寫進文件
  5. echo $! > /var/run/zuul-service.pid

 #賦予執行權限

chmod a+x /zuul-service/zuul-start.sh
 

四,將服務添加進systemctl進行管理

vim  /usr/lib/systemd/system/zuul.service

 #zuul.service文件的內容 

  1. [Unit]
  2. Documentation=zuul-service
  3.  
  4. [Service]
  5. User=root
  6. Group=root
  7. Type=forking
  8. Restart=no
  9. KillMode=process
  10. ExecStart=/etc/rc.d/init.d/zuul start
  11. ExecStop=/etc/rc.d/init.d/zuul stop
  12.  
  13. [Install]
  14. WantedBy=multi-user.target

#啟動zuul 

systemctl daemon-reload
systemctl enable zuul 
systemctl start zuul

  1. CentOS7自定義系統服務
  2.  
  3. CentOS7的服務systemctl腳本存放在: /usr/lib/systemd/,有系統(system)和用戶(user)之分,需要開機不登陸就能運行的程序,存在系統服務里,即:/usr/lib/systemd/system目錄下.
  4. CentOS7的每一個服務以.service結尾,一般會分為 3部分:[Unit]、[Service]和[Install] 
  5.  
  6. [Unit]部分主要是對這個服務的說明,內容包括Description和After,Description 用於描述服務,After用於描述服務類別
  7.  
  8.  
  9. [Service]部分是服務的關鍵,是服務的一些具體運行參數的設置.
  10.  
  11. # 設置服務運行的用戶
  12. User=users
  13.  
  14. # 設置服務運行的用戶組
  15. Group=users
  16.  
  17. # 設置進程的啟動類型
  18. Type=forking
  19.  
  20. # 服務重啟策略
  21. Restart=no
  22.  
  23. # 殺掉進程的策略
  24. KillMode=process
  25.  
  26. # 服務的具體運行命令
  27. ExecStart
  28.  
  29. # 停止命令
  30. ExecStop
  31.  
  32. # 重置命令
  33. ExecReload
  34.  
  35. # 存放PID的文件路徑,
  36. PIDFile
  37.  
  38. # 環境變量
  39. Environment= "JAVA_HOME=/usr/local/jdk1.8.0_181"
  40.  
  41. # 表示給服務分配獨立的臨時空間
  42. PrivateTmp=True
  43.  
  44. 注意:[Service]部分的啟動、重啟、停止命令全部要求使用絕對路徑,使用相對路徑則會報錯!

 

五、systemctl管理命令

#設置開機自啟

systemctl enable zuul

#關閉開機自啟

systemctl disable zuul

#啟動服務

systemctl start zuul

#停止服務

systemctl stop zuul

#重啟服務

systemctl restart zuul

#查看服務狀態

systemctl status zuul

#檢查開機自啟狀態

systemctl is-enabled zuul



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM