解放程式設計師雙手之Supervisor

2020-12-17 php中文網

前言

對於大部分程式設計師來說,主要工作都是進行編碼以及一些簡單的中間件安裝,這就導致了很多人對於「運維」相關的工作會比較生疏。例如當我們擁有一臺自己的伺服器以後,可能會在上面跑一跑自己blog程序,mysql,nginx等等。當程序越來越多了沒有一個統一的入口管理啟停,也可能會遇到一些特殊的原因導致程序被kill掉了,這時候又沒裝相關的監控程序或者腳本(太麻煩了懶得裝,機器配置差不想裝),所以只能當我們訪問自己程序發現異常的時候才會登上伺服器查找原因。

這些狀況對我們來說是比較麻煩的,那麼這就需要一個「神器」來解放我們的雙手,鐺鐺鐺!!Supervisor 就來了。

正文

Supervisor 介紹

Supervisor是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變為後臺daemon,並監控進程狀態,異常退出時能自動重啟。它是通過fork/exec的方式把這些被管理的進程當作supervisor的子進程來啟動,這樣只要在supervisor的配置文件中,把要管理的進程的可執行文件的路徑寫進去即可。也實現當子進程掛掉的時候,父進程可以準確獲取子進程掛掉的信息的,可以選擇是否自己啟動和報警。

supervisor 安裝

簡單粗暴

yum install supervisor -y

supervisor 配置說明

通過這種形式安裝的supervisor,其配置文件的目錄位於:/etc/supervisord.conf (主配置文件,下面會詳細介紹)/etc/supervisor.d/ (默認子進程配置文件,也就是需要我們根據程序配置的地方)

supervisord.conf 基本配置項說明,由於其參數比較多,這些只貼出一些常用的配置項,詳細內容可參閱官網。溫馨提示 「;」 符號是表示該行配置被注釋。

[unix_http_server]file=/home/supervisor/supervisor.sock ; supervisorctl使用的 socket文件的路徑;chmod=0700 ; 默認的socket文件權限0700;chown=nobody:nogroup ; socket文件的擁有者[inet_http_server]; 提供web管理後臺管理相關配置port=0.0.0.0:9001 ; web管理後臺運行的ip地址及埠,綁定外網需考慮安全性 ;username=root ; web管理後臺登錄用戶名密碼;password=root[supervisord]logfile=/var/log/supervisord.log ; 日誌文件,默認在$CWD/supervisord.loglogfile_maxbytes=50MB ; 日誌限制大小,超過會生成新文件,0表示不限制logfile_backups=10 ; 日誌備份數量默認10,0表示不備份loglevel=info ; 日誌級別pidfile=/home/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid ; pid文件nodaemon=false ; 是否在前臺啟動,默認後臺啟動falseminfds=1024 ; 可以打開文件描述符最小值minprocs=200 ; 可以打開的進程最小值[supervisorctl]serverurl=unix:///home/supervisor/supervisor.sock ; 通過socket連接supervisord,路徑與unix_http_server->file配置的一致[include]files = supervisor.d/*.conf ;指定了在當前目錄supervisor.d文件夾下配置多個配置文件

準備測試項目

這裡我打包了一個簡單的spring-boot程序,存放與「/opt/project/」下。

在這個程序中我們只是簡單的定義了一個rest接口,主要用於演示作用。

@RestControllerpublicclassHelloController{ @RequestMapping("/hello") public String hello(){ return"hello world"; }}

如果不用supervisor的話,我們啟動程序一般用一下命令

nohup java -jar springboot-hello-sample.jar &

這是以後臺的方式啟動jar包,程序運行相關輸出會在nohup.out中,我們我們就不再贅述了,那麼我們來看一下,切換到supervisor的方式,我們是怎麼配置項目,以及管理的呢?

定義supervisor管理進程配置文件

從上面的配置文件[include]->files配置項我們可以知道,supervisor會把supervisor.d/下以conf結尾的配置文件都加載進來,那麼我們在這個目錄下面新建一個sboot.conf,內容如下:

[program:sboot];[program:xxx] 這裡的xxx是指的項目名字directory = /opt/project ;程序所在目錄command = java -jar springboot-hello-sample.jar ;程序啟動命令autostart=true ;是否跟隨supervisord的啟動而啟動autorestart=true; 程序退出後自動重啟,可選值:[unexpected,true,false],默認為unexpected,表示進程意外殺死後才重啟stopasgroup=true;進程被殺死時,是否向這個進程組發送stop信號,包括子進程killasgroup=true;向進程組發送kill信號,包括子進程stdout_logfile=/var/log/sboot/supervisor.log;該程序日誌輸出文件,目錄需要手動創建stdout_logfile_maxbytes = 50MB;日誌大小stdout_logfile_backups = 100;備份數

可以看到,在配置文件裡面已經有配置該程序名,啟動路徑等,這樣一來,supervisor就可以完全的掌管程序的生死了。接著我們執行

service supervisord restart

重啟supervisord。

觀察效果

瀏覽器輸入:伺服器ip:9001 (這裡的web管理頁面埠是在配置文件配置好的。)

如圖所示,我們可以可以觀察到springboot程序已經是running狀態了,pid是27517,我們可以點擊Tail -f拉力觀察輸出日誌,它的作用跟我們在伺服器直接「tail -f」是類似的。

這裡我們為了方便延時就沒有添加驗證了,如果大家是在公網的使用環境,需要配置文件裡面的用戶名密碼驗證注釋打開。不然別人掃出你的後臺管理頁面就可以隨意控制程序了。

除了web管理頁面,還有一些簡單的命令也是需要我們掌握的。

直接在命令行輸入supervisorctl會展示當前已配置好的項目信息。

[root@wangzh supervisor.d]# supervisorctlsbootRUNNINGpid 27517, uptime 0:18:04supervisor>

然後可以執行

start/stop/restart sboot 來簡單控制項目的啟停等

supervisorctl update #更新配置文件supervisorctl reload #重新啟動配置的程序supervisorctl stop all #停止全部管理進程

結語

只需要一點簡單的配置,就可以統一的管理我們的程序了,同時也可以在進程意外死掉的時候自動重啟,這些工作以後就交給supervisor了,我們只要掌握一點簡單的命令就可以「為所欲為」。

相關焦點

  • Mobileye SuperVision 用於可解放雙手的ADAS功能
    打開APP Mobileye SuperVision 用於可解放雙手的ADAS功能 機器人創新生態 發表於 2020-11-18 11:49:03
  • 時尚女式雙肩包,舒適雙肩,解放雙手,細節之處彰顯品質魅力
    舒適的肩帶解放雙手,每個細節都是採用牛皮的製作,紋理細膩手感柔軟,體現自己的品味與時尚就從現在開始。 小清新學院風的一款雙肩包,個性優雅,時尚中盡顯美麗大方。並且,超級大的容量設計製作,就算是出遠門也完全夠用了。很是方便。
  • 訊飛輸入法再現黑科技 讓用戶解放雙手告別鍵盤
    從實體鍵盤、虛擬鍵盤到語音輸入,打字效率顯著提升並逐漸解放雙手。9月25日,訊飛輸入法官方微博發布預熱海報,直擊用戶痛點,實現真正的解放雙手。上世紀末,電腦和功能機的普及,用戶養成了用手打字的習慣。一直到觸屏智能機剛誕生的那些年,通過手的交互模式還在延續。隨著社會進步和人的發展,手速漸漸跟不上跳躍的思維。
  • 孩子的天堂,解放父母雙手的好去處
    孩子的天堂,解放父母雙手的好去處,衛生做的非常到位,時刻能看到有人在打掃,餐廳整體色調搭配的都很不錯,可供遊玩的區域也不少,大人進門後需要換拖鞋,孩子穿防滑襪,有門禁,不怕孩子跑出去,室內遊玩的好去處。
  • 寶寶 爬爬走走快樂比賽 「 解放媽媽雙手 」受大家青睞
    深圳新聞網訊(記者徐哲康  )寶寶快樂爬爬比賽,解放媽媽雙手輕鬆。本次活動圍繞五大維度為核心展開,藉助超級  IP的強大營銷能力,以及廣電集團知名主持人洪濤的號召力,寶貝聽聽故事達人的網紅傳播力,包含解放媽媽雙手寶寶爬爬走走賽、故事海選賽、  IP玩偶群互動、  IP動漫屋,神秘大咖講故事
  • 寶寶必備「大件」之——搖搖椅,既能哄娃又能解放雙手
    今天給大家分享一款解放爸媽雙手的哄娃神器——搖搖椅,特別適合一個人在家帶娃的寶媽們,一個人帶娃不得不說真的很累,往往會腰酸背痛的,而且小寶寶會經常粘著你,根本抽不出時間做其他的事情。Mastela嬰兒搖椅愛貝迪拉嬰兒搖椅 Ppimi嬰兒搖椅雅悅格嬰兒搖椅Hot Mom嬰兒搖椅澳貝嬰兒童搖搖椅本期分享就到這兒了~~搖搖椅真的可以解放爸媽的雙手,而且寶寶在上面聽著音樂自娛自樂,也可以躺在上面入眠
  • 思學文具電教多功能閱讀架 解放雙手破解更多妙用
    思學文具電教多功能閱讀架 解放雙手破解更多妙用時間:2020-12-21 15:14   來源:搜狐   責任編輯:青青 川北在線核心提示:原標題:思學文具電教多功能閱讀架 解放雙手 破解更多妙用 相信很多人都有趴在桌子上看書的習慣,單手撐著桌子支著頭,每次想拿筆記點東西,很不方便,要拿點重物壓住書本,防止合上
  • 比依空氣炸鍋:假期解放雙手,度過美好「食」光
    五一小長假將至,對於這四天的假期,大多數人已經不願意趁此時節出門旅遊趕熱鬧,而是選擇在家休息調整或者邀請三五好友來家中吃飯小聚,趁著假期解放身心。比依空氣炸鍋作為一款解放雙手的廚房神器,方便快捷易上手,能夠在假期為人們製作既健康又美味的食物。
  • 解放雙手桌面床頭通用,多功能懶人手機支架精選
    不過,總是低頭看手機長時間會導致脖子酸疼麻木,不防試一試今天給大家推薦的幾款使用多功能懶人手機支架,解放雙手輕鬆追劇,不管是桌面還是床頭都能夠輕鬆試用哦,一起來看看吧。— ① —伸縮設計 手機平板通用還在捧著手機追劇嗎?長時間下來累得手疼脖子酸的,真是太out了。
  • 減齡必備:解放雙手的美貌雙肩包
    你絲毫不用擔心包包太小,背帶太短,襯託得人更臃腫,雙肩包背在背後解放雙手,單手拎時解放肩膀,省力又不失style就是它了!纖瘦又個子小的仙女,要選擇適合自己身高的雙肩包。體積太大的,會在視覺上顯得不協調。與自己身形剛好匹配的包包,能夠兼顧你的日常和旅行Look。
  • 徹底解放雙手 四款懶人平板支架推薦
    徹底解放雙手 四款懶人平板支架推薦 2015年02月15日 02:39作者:李靜編輯:李靜文章出處:泡泡網原創 這四款支架都能解放雙手,樂享平板,一起來看看吧。
  • 解放雙手擁抱科技生活 就先從石頭掃地機器人T6開始
    但往往事與願違,為了工作不得不選擇背井離鄉,那麼如何才能解放母親的雙手呢,智能硬體的出現,讓我們遠端的遊子,能為母親送上一份別樣的孝心。在家務中,除做飯外,收拾屋子可以說是最耗費經歷的一件事情了。掃地、拖地佔據了母親大塊的閒暇時間,並且頻繁的彎腰掃地、拖地也對她的脊柱造成了傷害。雖然幾年前為家中添置了一臺吸塵器,但還是沒從根本上解決這一問題。
  • 成年後最走心的孝順,是解放父母的雙手
    解放父母的雙手,讓他們做自己熱愛的事豆瓣高達9.5的紀錄片《人生果實》,講述了一對日本現代陶淵明夫婦的生活。所以,我們不妨從此刻開始為父母的幸福著想,解放掉父母為家庭操勞的雙手,跟他們說:家裡有我在,盡情去做你想做的事情吧。
  • 解放雙手!掃地機器人如何成為優秀的家務幫手
    作為一種新潮的科技產品,掃地機器人受到年輕人們的熱捧也在情理之中,尤其對於女性們來說,本身體力就不佔優勢,花幾千塊錢購入一款機器人幫自己完成家務,可以大大節省日常的時間,解放雙手,有更多的時間去享受生活。
  • AWE 2019:解放你的雙手,麵團處理交給小熊和面機
    而這款小熊智能和面機則恰好解放了我們的雙手,讓和面的過程更簡便。小熊智能和面機的造型簡潔而不簡單,配色較為簡單。它內部擁有5L的和面容量。而在完成和面過程後,還可以使用它來醒面,恆溫醒面功能也讓它在使用上更為多樣化。
  • 變形手柄最新宣傳片 玩I社遊戲解放雙手無壓力
    變形手柄最新宣傳片 玩I社遊戲解放雙手無壓力 變形手柄最新宣傳片 玩I社遊戲解放雙手無壓力
  • 【新品】解放雙手,火熱來襲,LG吸塵器所有主婦的夢想之選!
  • 萌物分享:解放媽媽雙手的安撫神器
    小可兒屬於比較好哄的乖BB,絕對得益於從小養成的好習慣,目前來看她的整個生活作息都非常規律,偶爾煩躁哭鬧的時候稍加安撫就可以平靜下來。而對於培養她的良好習慣,我覺得自己囤的一款安撫神器真的發揮了很大的功效。
  • 訊飛輸入法重磅發布9.1版本 AI輸入真正解放雙手
    智慧語音輸入真正解放雙手語音是最早落地的A.I.技術,也是市面上A.I.應用最廣泛的。基於語音輸入的新一代交互方式,能夠解放雙眼雙手,在說話間得到文字或反饋。發展至今,語音輸入如何能更好解放雙手?訊飛輸入法一直不斷嘗試探索。以「免切換語音輸入」為例,從「多語言頻繁切換」到一種語音輸入「通吃」多語言,有效降低語音用戶「動手」的頻率。此次訊飛輸入法新版在實現中英、粵語與普通話的基礎上,新增四川話與普通話免切換語音輸入,不用切換識別模式,四川話和普通話都能快速準確識別。
  • 解放雙手 照亮所及!OLIGHT雷神Perun2拐角手電賞玩
    今天要為大家帶來的就是由OLIGHT傲雷新上架的雷神Perun2拐角手電,一款燈頭與筒身呈90度拐角的「非常規」手電;一款有著解放雙手,可應用於多種場景的「智能」手電。下面就讓我們趕緊來嘗鮮了解下吧:開包環節那些虛套就不再整啦,直接看手電本體吧。