使用Daemontools監(jiān)控管理服務

linux主要使用supervise來管理常駐進程予弧⊙罢蹋基于supervise的兩個比較重要的工具是DaemontoolsSupervisor羽戒。
實際上塘偎,supervise也算Daemontools的一個工具拿霉。Daemontools是svscanboot,svscan涵防,supervise沪铭,svc,svok椰憋,svstat等一系列工具的合集赔退。

為什么使用Daemontools

參考這里

Paste_Image.png
  1. 增加刪除service
    只需要在/service中刪除或增加link即可
  2. 快速啟動
    在/service中增加服務, 即可自動在五秒內(nèi)完成啟動
  3. 可靠重啟
    service down掉之后窗骑,自動重啟
  4. 簡單可靠的控制
    配置好 /service 之后漆枚, 使用svc命令,可以控制service daemon浪读。 比如:
  • svc -h /service/yourdaemon:
    sends HUP
  • svc -t /service/yourdaemon:
    sends TERM, and automatically restarts the daemon after it dies
    *svc -d /service/yourdaemon:
    sends TERM, and leaves the service down
  • svc -u /service/yourdaemon:
    brings the service back up
  • svc -o /service/yourdaemon:
    runs the service once
  1. 干凈的進程狀態(tài)
    重啟的service進程,跟第一次啟動的一樣干凈互订,純潔無暇
  2. 可移植
    通過配置 /service,程序能在各個linux系統(tǒng)(Linux, BSD, Solaris, etc)上氮墨,按相同的方式運行

安裝 和 使用

NOTE: 必須使用 root 運行所有的東西

  • Step 1 安裝:
mkdir -p /package
chmod 1755 /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar -xpf daemontools-0.76.tar.gz
rm -f daemontools-0.76.tar.gz
cd admin/daemontools-0.76
package/install

如果 package/install 失敗吐葵,則編輯 ./src/conf-cc文件,增加-include errno.h/

ed ./src/conf-cc
1s/$/ -include errno.h/
wq

或者

vim ./src/conf-cc
增加gcc配置 -include errno.h

然后重試package/install安裝

  • Step 2 啟動:
    啟動 Daemontools
apt-get install csh "(for Ubuntu/Debian users)"
csh -cf '/command/svscanboot &'

設置 Daemontools 自啟動(on system boot)

sed -i "1 a\csh -cf '/command/svscanboot &'" /etc/rc.local
chmod +x /etc/rc.local
  • Step 3 創(chuàng)建service:
    創(chuàng)建 Services 目錄猛铅,并鏈接到 /service凤藏。 下例,創(chuàng)建服務 在 /services
mkdir /services
mkdir /services/somerandomservice
echo -e '#!/bin/sh\nexec somerandomcommand' > /services/somerandomservice/run
chmod 755 /services/somerandomservice/run
ln -s /services/somerandomservice/ /service/

創(chuàng)建鏈接到 /service 目錄栗菜, daemontools就會啟動service蹄梢, 這個時候可以檢查service的uptime
svstat /service/somerandomservice
可以知道service的狀態(tài)、pid和運行時間
(note: 如果service的運行時間小于1秒腌歉,則可能是run腳本出錯齐苛,需要調(diào)試)

  • Step 4 指定用戶:
    使用特定用戶運行service, 與上面的運行類似凹蜂,不過要使用setuidgid 指定用戶
mkdir /services/somerandomuserservice
ed /services/somerandomuserservice/run
a
#!/bin/sh
exec setuidgid somerandomuser somerandomcommand
.
w!
chmod 755 %
q
ln -s /services/somerandomuserservice/ /service/

note: 以上使用ed編輯玛痊,也可以使用其他編輯汰瘫,實現(xiàn)一樣的目的)
除了通過指定uidgid混弥,也可以通過全登錄的方式:

mkdir /services/somerandomuserservice
ed /services/somerandomuserservice/run
a
#!/bin/sh
exec su - somerandomuser -c 'exec somerandomcommand'
.
w!
chmod 755 %
q
ln -s /services/somerandomuserservice/ /service/
  • Step 5 logger:
    配置multilog, 來對service打logger
adduser logger
mkdir /services/somerandomservice/log
mkdir /services/somerandomservice/log/main
chown logger /services/somerandomservice/log/main
ed /services/somerandomservice/log/run
a
#!/bin/sh
exec setuidgid logger multilog t ./main
.
w!
chmod 755 %
q
  • Step 6 Debug:
    檢查 run 腳本
cd /service/somerandomservice
svc -d .
./run

檢查,修復bug之后蝗拿,使用svc -u /service/somerandomservice 啟動服務

  • Step 6 檢查日志:
cd /service/somerandomservice
tail -n5 log/main/current
  • Step 7 重啟service:
svc -t /service/somerandomservice
  • Step 8 刪除service:
rm /service/somerandomservice
svc -dx /services/somerandomservice
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哀托,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胖齐,更是在濱河造成了極大的恐慌嗽冒,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剿另,死亡現(xiàn)場離奇詭異帅腌,居然都是意外死亡麻汰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門溺职,熙熙樓的掌柜王于貴愁眉苦臉地迎上來位喂,“玉大人,你說我怎么就攤上這事塑崖。” “怎么了澜躺?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵抒蚜,是天一觀的道長。 經(jīng)常有香客問我操漠,道長饿这,這世上最難降的妖魔是什么撞秋? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任吧黄,我火速辦了婚禮,結(jié)果婚禮上廓八,老公的妹妹穿的比我還像新娘赵抢。我一直安慰自己,他們只是感情好烦却,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布其爵。 她就那樣靜靜地躺著,像睡著了一般摩渺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上横侦,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天绰姻,我揣著相機與錄音,去河邊找鬼榨馁。 笑死帜矾,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的黍特。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼次慢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劈愚?” 一聲冷哼從身側(cè)響起闻妓,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎注祖,沒想到半個月后均唉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡罩缴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年层扶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檬寂。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡稚叹,死狀恐怖拿诸,靈堂內(nèi)的尸體忽然破棺而出扒袖,到底是詐尸還是另有隱情亩码,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布飒泻,位于F島的核電站吏廉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏史辙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一晦毙、第九天 我趴在偏房一處隱蔽的房頂上張望耙蔑。 院中可真熱鬧,春花似錦甸陌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寥院。三九已至劲赠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秸谢,已是汗流浹背凛澎。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留估蹄,地道東北人塑煎。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像臭蚁,于是被迫代替她去往敵國和親最铁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容