Server

崩潰時自動重啟 bitcoind

  • February 26, 2017

在 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了解更多資訊。

引用自:https://bitcoin.stackexchange.com/questions/41362