Centos7中如何把一個jar包做成一個服務啟動
阿新 • • 發佈:2020-12-27
使用IDEA做開發的都知道, IDEA的Jrebel外掛可以支援熱部署, 不用每次修改都重啟伺服器.之前都是把jar包做成bat檔案, 在自己的電腦上設定成自啟動專案,然後在IDEA裡引用。奈何本人能力有限,每次開機啟動的時候這個jar包都會在前臺執行,需要手動最小化,看著很難受。正好買了一臺阿里雲伺服器,就嘗試在雲伺服器上部署。 最開始的時候,用 nohup java -jar xxx.jar > xxx.log 2>&1 & 的形式,讓服務在後臺執行,但是這種方式重啟或者停止服務有些麻煩。CentOS7上的 systemd 提供了一組命令,可以把jar包做成一個服務,通過 systemctl start xxx 的形式啟動,這樣就方便多了。 首先需要說明的是: systemd 是有系統和使用者區分的,系統的 systemd 在 /usr/lib/systemd/system 下,使用者的在 /etc/systemd/system下,我們自己建立的service服務一般都儲存在 /etc/systemd/system下。
- 建立服務檔案
vi /etc/systemd/system/xxx.service
xxx為服務名。
檔案內容:
[Unit] Description=jrebel service [Service] WorkingDirectory=/usr/local/dcy/javaAPP/ Type=simple Restart=always PrivateTmp=true ExecStart=/usr/local/dcy/package/jdk1.8.0_152/bin/java -jar /usr/local/dcy/javaAPP/JrebelBrains.jar -p 8000 ExecStop=/bin/kill -15 $MAINPID [Install] WantedBy=multi-user.target
這樣服務就建立好了。
2. 啟動服務
我的service檔名為jrebel.service ,因此執行systemctl start jrebel.service
或者systemctl start jrebel
,檢視服務執行狀態systemctl status jrebel
3. 其他命令
停止服務:systemctl start jrebel
設定開機自啟動:systemctl enable jrebel