日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用systemd部署服務的過程解析_python

作者:Python研究所 ? 更新時間: 2022-08-04 編程語言

1、前言

通常,我們在開發過程中,難免需要去部署我們的服務,但是,我們應該如何去做呢?如果主機重啟了,服務怎么自己啟動呢?可能你的心里已經有了幾種不同的答案,接下來我們就一起看看吧。

2、如何部署服務

假設,我們現在有一個python項目(名為xx),現在我們想要將其部署在Linux服務器上,我們應該如何操作呢?

xx的內容

#!/usr/bin/python
import time
i=0
while True:
    print i
    i+=1
    time.sleep(60)

2.1、后臺進程方式啟動

第一種方式,我們可以直接將這個項目以后臺進程的方式進行啟動。

nohup python xx &

2.2、使用systemd方式啟動

第二種方式,我們可以通過systemd將項目進行托管。

關于systemd:systemd是Linux平臺的一款軟件,其支持以守護進程方式啟動任務,支持cgroup資源隔離,可以非常高效的在Linux啟動過程中加載我們的服務。

2.2.1、創建service文件

xx文件所在路徑:/root/

service文件所在路徑:/etc/systemd/system/

xx.service內容

[Unit]
Description=myself service
[Service]
ExecStart=/root/xx
[Install]
WantedBy=multi-user.target

由于我們在xx文件中定義了解釋器,所以我們可以直接給xx增加可執行權限,在啟動命令中直接指定xx的路徑即可。

2.2.2、啟動服務

指定service文件使能xx服務的命令:

systemctl -f enable /etc/systemd/system/xx.service

啟動xx服務:

systemctl start xx

查看xx服務狀態:

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的配置以達到當服務異常退出的時候自動重啟服務的效果。

原文鏈接:https://juejin.cn/post/7107584360815001613

欄目分類
最近更新