如何使用systemd部署服務?
theme: smartblue
持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第10天,點選檢視活動詳情
1、前言
通常,我們在開發過程中,難免需要去部署我們的服務,但是,我們應該如何去做呢?如果主機重啟了,服務怎麼自己啟動呢?可能你的心裡已經有了幾種不同的答案,接下來我們就一起看看吧。
2、如何部署服務
假設,我們現在有一個python專案(名為xx),現在我們想要將其部署在Linux伺服器上,我們應該如何操作呢?
xx的內容
```python
!/usr/bin/python
import time i=0 while True: print i i+=1 time.sleep(60) ```
2.1、後臺程序方式啟動
第一種方式,我們可以直接將這個專案以後臺程序的方式進行啟動。
bash
nohup python xx &
2.2、使用systemd方式啟動
第二種方式,我們可以通過systemd將專案進行託管。
關於systemd:systemd是Linux平臺的一款軟體,其支援以守護程序方式啟動任務,支援cgroup資源隔離,可以非常高效的在Linux啟動過程中載入我們的服務。
2.2.1、建立service檔案
xx檔案所在路徑:/root/
service檔案所在路徑:/etc/systemd/system/
xx.service內容
bash
[Unit]
Description=myself service
[Service]
ExecStart=/root/xx
[Install]
WantedBy=multi-user.target
由於我們在xx檔案中定義瞭解釋器,所以我們可以直接給xx增加可執行許可權,在啟動命令中直接指定xx的路徑即可。
2.2.2、啟動服務
指定service檔案使能xx服務的命令:
bash
systemctl -f enable /etc/systemd/system/xx.service
啟動xx服務:
bash
systemctl start xx
檢視xx服務狀態:
bash
systemctl status xx
3、如何自動啟動
3.1、自動啟動檔案
3.1.1、rc.local
對於後臺程序部署的服務,我們可以將啟動命令新增到開機自啟檔案中。
自動啟動檔案路徑:/etc/rc.local
。
3.1.2、rc.d
我們除了可以將啟動命令直接加入到rc.local檔案中,也可以直接將可執行指令碼移動到/etc/rc.d/init.d/
路徑下。
3.2、systemd
systemd預設會在伺服器啟動的時候啟動我們的服務,因為我們已經enable了服務。但是我們為了防止服務在異常退出後無法恢復,我們可以向service檔案中增加[Service]
配置塊中增加Restart=on-failure
的配置以達到當服務異常退出的時候自動重啟服務的效果。
- FastApi-01-初識
- Docute超簡單的文件工具
- 類似GitBook的文件構建工具
- Python使用Redis
- Nexus | 企業級映象倉庫
- DjangoRestFramework急速入門
- Pony的left-join
- retrying一個可以發生異常自動重試的庫
- layui-vue簡單體驗
- 如何使用systemd部署服務?
- 虛擬網絡卡效能測試指南
- 前後端配合實現簡單的分頁功能
- 那些讓人眼前一亮的圖是怎麼畫的?
- Python的多執行緒為什麼不能利用多核處理器
- 快來美化你的MKDocs吧
- 如何進行千萬級TCP連線測試
- Redis進階實踐
- FastApi Vue LayUI實現前後端分離
- Docker-13-Rancher
- Docker-12-docke-compose