功能:java
在使用memcached時候,怕由於一些不可預知的因素致使memcached進程死掉,而又不能及時的發現重啓,能夠經過daemontools來管理memcached的啓動,當memcached死掉後系統會自動在5秒內重memcached;memcached
一、安裝spa
yum install cshblog
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz下載進程
yum install gcc tcsh # gcc, csh 要求
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz tar -zxf daemontools-0.76.tar.gz mv daemontools-0.76 /var/lib/ # 很是重要, 安裝完成後不能刪除: /var/lib/daemontools-0.76 chown root:root -R /var/lib/daemontools-0.76 chmod 755 /var/lib/daemontools-0.76 cd /var/lib/daemontools-0.76/ # 必須進入此目錄才能編譯 ./package/install sed -i '$acsh -cf \x27\/command\/svscanboot &\x27' /etc/rc.d/rc.local
最後一句命令是在 ‘/etc/rc.d/rc.local’ 文件上加上了一句:get
csh -cf '/command/svscanboot &'it
啓用:io
sh /etc/rc.local 或 systemctl start rc-local
檢查服務是否啓動:編譯
ps -ef|grep svscanboot root 13716 1 0 04:44 pts/1 00:00:00 /bin/sh /command/svscanboot
使機器重啓後生效:class
chmod +x /etc/rc.d/rc.local # 必須有,不然重啓不能啓動 svscanboot 服務
若是你的glibc庫比較新,此時你極可能會遇到下面錯誤:
/usr/bin/ld: errno:
TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [envdir] Error 1
Copying commands into ./command...
cp: cannot stat `compile/svscan': No such file or directory
爲了解決這個問題,接着上面的安裝步驟繼續:
cd src wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch patch < daemontools-0.76.errno.patch cd .. package/install
經過ps -ef | grep svscan 來確認安裝是否成功
該版本已經把腳本自動加到系統啓動腳本里
/etc/inittab
開機會自動啓動
二、配置
在/service下創建memcached目錄
在/service/memcached新建名爲run的啓動腳本,以下
#!/bin/sh
exec 2>&1
exec /usr/local/bin/memcached -u root -m 30
啓動服務:
svc -du /service/memcached(重啓memcached進程)
svc -u /service/memcached(啓動memcached進程)
svc -d /service/memcached(中止memcached進程)