Server
崩潰時自動重啟 bitcoind
在 Ubuntu 14.04 上,我無法讓比特幣守護程序自動重啟。守護程序很少會死掉,重要的是它在沒有人工干預的情況下重新啟動。為了讓它與 Upstart 一起自動啟動,我遵循了下面連結的指南。它
sudo start bitcoind
按預期啟動,但如果失敗,服務不會重新啟動。Ubuntu Linux — 如何啟動 bitcoind 作為服務以自動執行?
我在 /etc/init/ 中的 conf 文件如下。
description "bitcoind" start on filesystem stop on runlevel [!2345] oom score -500 expect fork respawn respawn limit 20 90 # 10 times in 60 seconds script user=bitcoinuser home=/home/$user cmd=/usr/bin/bitcoind pidfile=$home/.bitcoin/bitcoind.pid # Don't change anything below here unless you know what you're doing [[ -e $pidfile && ! -d "/proc/$(cat $pidfile)" ]] && rm $pidfile [[ -e $pidfile && "$(cat /proc/$(cat $pidfile)/cmdline)" != $cmd* ]] && rm $pidfile exec start-stop-daemon --start -c $user --chdir $home --pidfile $pidfile --startas $cmd -b --nicelevel 15 -m end script
如果我執行
ps -aux | grep bitcoind
以獲取程序 ID 並將其殺死,則守護程序不會按需要重新啟動。我已按照指南進行操作,但看不到設置有什麼問題。作為旁注sudo stop bitcoind
實際上並沒有阻止它執行。對此的任何幫助將不勝感激。
我正在執行一個 RaspberryPi 比特幣節點。由於我發現節點有時會因過載而崩潰,因此我在 crontab 中輸入了一個每小時啟動命令:
@hourly <completePath>/bitcoind -daemon -disablewallet
如果
bitcoind
已在執行,則由於未鎖定數據目錄而無法啟動。否則,伺服器將在最多停機一小時的情況下重新啟動。我確信有更優雅的解決方案,但我沒有進一步探索它,因為這對我有用。
將此添加到您的
/etc/inittab
:bd:1234:respawn:sudo -u <USERNAME_TO_RUN_bitcoind> <DIRECTORY_CONTAINING_bitcoind>/bitcoind
然後執行
telinit q
重新掃描
inittab
文件。更改上述範例中 <> 中的所有內容以適應您的情況。確保前兩個字母(上例中b itcoin d的“bd”)是唯一的;您可以將它們設為任意兩個字母,只要在
inittab
使用它們時沒有其他內容即可。這將使它
bitcoind
在崩潰後立即重新啟動。參看。
man inittab
了解更多資訊。