Systemd設定程式保護

我要在河邊釣一整天的魚發表於2018-03-05

參考資料

Systemd 入門教程:實戰篇

配置

  1. /etc/systemd/system 路徑下新建xxx.service檔案;
  2. xxx.service 中新增如下配置:

[Unit]
Description=miniapp process manager
After=syslog.target network.target nss-lookup.target
[Service]
Type=simple
ExecStart=/home/yang/.virtualenvs/ante-miniapps/bin/gunicorn -c /home/yang/app/ante_miniapps/gunicorn_start.py run:app
▽estart=always
RestartSec=5
[Install]
WantedBy=default.target
複製程式碼

這個配置的欄位不做過多解釋,在這篇文章中將的很仔細(Systemd 入門教程:實戰篇)。其中配置中/home/yang/.virtualenvs/ante-miniapps/bin/gunicorn為虛擬環境的gunicorn的路徑,/home/yang/app/ante_miniapps/gunicorn_start.pygunicorn的配置路徑。

Systemd命令設定

· sudo systemctl enable xxx.srvice #將服務加入開機啟動項;
· sudo systemctl daemon-reload # 修改xxx.service檔案後需要重新載入服務;
· sudo systemctl start xxx # 啟動服務
· sudo systemctl stop xxx # 停止服務
· sudo systemctl restart xxx # 重啟服務
· sudo systemctl status xxx # 服務狀態

總結

伺服器是使用的nginx + guninorn 的配置,因為我將系統預設的python版本和使用的版本改成了Python3所以不能使用Supervisor進行程式保護。查詢出的替代品是circus,在看過官方文件和google之後circus的執行結果:

circus的執行結果

直接卡在這裡不動了,在google無果後選擇了上述的方式進行啟程gunicorn
從開始著手學小程式到第一個介面跑起來,總共時間將近兩週,所以本文只做搬磚記錄。希望大神指點這樣做的優劣和更好的方式。


伺服器部署和Python都是剛學如有那個地方不對的請及時告知,萬分感謝。

謝謝觀看

相關文章