進程管理工具Supervisor的安裝及使用

来源:http://www.cnblogs.com/zixinchen/archive/2017/04/14/6710268.html
-Advertisement-
Play Games

需求:有一個進程需要每時每刻不斷的跑,但是這個進程又有可能由於各種原因有可能中斷。當進程中斷的時候我需要他能自動重啟,保證服務一直在跑著。基於整個需求,一開始想的是起一個腳本,監聽該服務的埠,一旦發現埠占用被解除,立即重新執行命令。但是後來發現linux已經有了類似的東西,即今日的主角Super ...


  需求:有一個進程需要每時每刻不斷的跑,但是這個進程又有可能由於各種原因有可能中斷。當進程中斷的時候我需要他能自動重啟,保證服務一直在跑著。基於整個需求,一開始想的是起一個腳本,監聽該服務的埠,一旦發現埠占用被解除,立即重新執行命令。但是後來發現linux已經有了類似的東西,即今日的主角Supervisor:

  安裝(Ubuntu)

sudo apt-get install supervisor

  可以進入paython測試是否能import supervisor 來確定是否已經裝好。

  配置

  安裝好supervisor後就可以編寫配置文件了。配置文件放在/etc/supervisor/conf.d/目錄下,最好一個進程對應一個.conf文件。
  配置文件參數說明:

[program: test]
command=xxxxxxxx  ;如果有多條命令,可以寫入shell腳本再在這裡調用
directory=xxxxx        ;執行命令時切換到的目錄
user=xxxx ;執行命令所用的linux用戶身份
autorestart=true    ;是否自動重啟
autostart=true ;啟動supervisor時是否自行啟動該程式
redirect_stderr=true    ;如果為true則將stderr發送到stdout相應的log文件中去
stdout_logfile=/path/to/logfile ;制定stdout的輸出文件
stdout_logfile_maxbytes=10MB    ;限定logfile的大小, 預設為50M
stdout_logfile_backups=10 ;保存logfile的最大數目,如果操作這個數目則對最早的logfile進行覆蓋,預設為10
environment=A="1", B="2" ;設置環境變數,這裡可以保存運行程式需要的參數 

  我要的功能非常簡單,僅做瞭如下配置

[program: server]
command=python /home/zxchen/server.py ;
autorestart=true ;
autostart=true ;

  啟動服務

sudo supervisorctl reread     #成功提示:server: available
sudo supervisorctl reload     #成功提示:Restarted supervisord
sudo supervisorctl start app  #如果服務沒有啟動時可以試試這個指令

  檢驗

lsof -i:埠號 #查看該埠狀態
kill -9 PID   #kill掉這個進程

  再次查看埠狀態,發現埠上服務的PID已改變,即成功。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天打開電腦,與往常一樣輸入用戶名密碼登錄後,發現桌面上空空如也,啟動欄launch,menu bar什麼的都消失了,桌面上文件可以打開,但是無法拖動位置,無法關閉(因為menu bar沒了,無法滑鼠點擊關閉), 經過苦苦搜索幾個小時之後找到解決方案如下,記錄下來方便有相同問題的人: 問題原因:un ...
  • 類似Windows, Linux也是一個操作系統,Linux是一套開放源代碼程式,並可以自由傳播的類Unix操作系統軟體,多用戶,多任務並且支持多線程和多CPU的操作系統。 Linux系統主要被應用於伺服器端,嵌入式開發和個人PC桌面3大領域,其中伺服器端領域是重中之重。 大型,超大型互聯網企業(百 ...
  • grep的作用:文本搜索工具,根據用戶指定的“模式”對目標文件逐行進行匹配檢查:列印匹配到的行。 模式:正則表達式編寫的過濾條件。 正則表達式(REGEXP):由一類特殊字元及文本字元所編寫的模式,其中有一些字元不表示字元字面意義,而表示控制或通配的功能。 分成兩類: 基本正則表達式:BRE 擴展正 ...
  • Ubuntu16.04安裝NVIDIA驅動時的一些坑與解決方案 ...
  • AR8033協商成1000M工作模式時,ping包丟失嚴重;通過關閉Green Feature可規避。 ...
  • 打算用家裡的台式機啟用ssh server用筆記本ssh登入linux家裡電腦 lubantu 使用命令sudo apt-get install openssh-server安裝openssh server安裝成功後ps查看是否有sshd進程然後在筆記本windows下使用xshell訪問 ...
  • 簡單的總結一下前段時間學習Linux的成果 查看 TCP 22 埠是否打開1、列出所有埠:[root@Demon proc]# netstat -ntlpActive Internet connections (only servers)Proto ... 一、查看 TCP 22 埠是否打開1 ...
  • 一、在實際生產環境中tomcat啟動是在bin目錄下採用自帶腳本startup.sh啟動;使用shutdown.sh關閉。如下圖: 再如果對於新手來講在不知道路徑情況下重啟是一件頭痛的事情(註意沒有reload,所以重啟只能shutdown.sh在startup.sh);而且這裡還有一個坑等著: 什 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...