使用systemd部署服務的過程解析
1、前言
通常,我們在開發(fā)過程中,難免需要去部署我們的服務,但是,我們應該如何去做呢?如果主機重啟了,服務怎么自己啟動呢?可能你的心里已經(jīng)有了幾種不同的答案,接下來我們就一起看看吧。
2、如何部署服務
假設(shè),我們現(xiàn)在有一個python項目(名為xx),現(xiàn)在我們想要將其部署在Linux服務器上,我們應該如何操作呢?
xx的內(nèi)容
#!/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將項目進行托管。
關(guān)于systemd:systemd是Linux平臺的一款軟件,其支持以守護進程方式啟動任務,支持cgroup資源隔離,可以非常高效的在Linux啟動過程中加載我們的服務。
2.2.1、創(chuàng)建service文件
xx文件所在路徑:/root/
service文件所在路徑:/etc/systemd/system/
xx.service內(nèi)容
[Unit] Description=myself service [Service] ExecStart=/root/xx [Install] WantedBy=multi-user.target
由于我們在xx文件中定義了解釋器,所以我們可以直接給xx增加可執(zhí)行權(quán)限,在啟動命令中直接指定xx的路徑即可。
2.2.2、啟動服務
指定service文件使能xx服務的命令:
systemctl -f enable /etc/systemd/system/xx.service
啟動xx服務:
systemctl start xx
查看xx服務狀態(tài):
systemctl status xx
3、如何自動啟動
3.1、自動啟動文件
3.1.1、rc.local
對于后臺進程部署的服務,我們可以將啟動命令添加到開機自啟文件中。
自動啟動文件路徑:/etc/rc.local
。
3.1.2、rc.d
我們除了可以將啟動命令直接加入到rc.local文件中,也可以直接將可執(zhí)行腳本移動到/etc/rc.d/init.d/
路徑下。
3.2、systemd
systemd默認會在服務器啟動的時候啟動我們的服務,因為我們已經(jīng)enable了服務。但是我們?yōu)榱朔乐狗赵诋惓M顺龊鬅o法恢復,我們可以向service文件中增加[Service]
配置塊中增加Restart=on-failure
的配置以達到當服務異常退出的時候自動重啟服務的效果。
到此這篇關(guān)于使用systemd部署服務的過程解析的文章就介紹到這了,更多相關(guān)systemd部署服務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用smtplib和email封裝python發(fā)送郵件模塊類分享
本文針對發(fā)郵件相關(guān)的操作進行了封裝,包括發(fā)送文本、HTML、帶附件的郵件,使用Python發(fā)郵件,主要用到smtplib和email兩個模塊,需要的朋友可以參考下2014-02-02Python中ModuleNotFoundError錯誤的問題解決
本文主要介紹了Python中ModuleNotFoundError錯誤的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法
今天小編就為大家分享一篇Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07