Bitcoind

Ubuntu Linux – 我如何將 bitcoind 作為服務啟動以自動執行?

  • November 27, 2019

當我的 Ubuntu 伺服器啟動時,我已經設置了一堆其他服務來自動啟動(wicd-daemon 和 VPN 等服務),但我不知道如何設置比特幣守護程序(bitcoind)在什麼時候自動啟動系統啟動。(這是在沒有 GUI 或連接監視器的無頭系統上。)

我正在嘗試學習如何將比特幣與 Python 集成,以便編寫支持比特幣的服務,但我希望系統在系統啟動時自動啟動 bitcoind,這樣我就不必手動進行了。(不得不一次下載一大堆區塊鍊是一件很痛苦的事。它會在正常執行時間吃掉。)

如果這個問題已經被問過,請引導我回答。我搜尋但找不到它。否則,請幫我解決這個問題!

非常感謝。

編輯: Ubuntu 發行版從 14.10 開始的警告購買者 -init已被選中upstart並在未來分階段進行。我不知道什麼時候會完成,也不知道它會對新貴腳本產生什麼影響。

從 RentFree 所指的頁面中提取;請注意,它假設您已經創建了一個bitcoinuser為安全起見呼叫的使用者:

對於那些執行 ubuntu 的人,您可能熟悉upstartsysvinit ,它是樣式引導 ( /etc/init.d/*)的替代品。

upstart 的配置文件儲存在/etc/init/*.conf. 我為 bitcoind 寫了以下內容:

description "bitcoind"

start on filesystem
stop on runlevel [!2345]
oom score -500
expect fork
respawn
respawn limit 10 60 # 10 times in 60 seconds

script
user=bitcoinuser
home=/home/$user
cmd=$home/bin/bitcoind
pidfile=$home/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 -m
end script

把上面的配置放進去/etc/init/bitcoind.conf,然後執行sudo initctl reload-configuration。開始bitcoind,執行sudo start bitcoind。停止bitcoind,執行sudo stop bitcoind

您可能希望將usercmdpidfile更改為與您的配置匹配的內容,或者您​​可以使用以下內容作為模板:

/home/bitcoinuser
/home/bitcoinuser/bitcoind.pid
/home/bitcoinuser/bin/bitcoind

儘管一位使用者建議對配置進行以下更正:

home=/home/$user
cmd=/usr/bin/bitcoind
pidfile=$home/.bitcoin/bitcoind.pid

另一個建議設置nice程序,這樣它就不會佔用 CPU

exec start-stop-daemon --start -c $user --chdir $home --pidfile $pidfile --startas $cmd -b --nicelevel 15 -m

Bitcoin Core 原始碼樹中有一個用於 Ubuntu 的 upstart 腳本。使用它是最正確的方法。

但是,我只是以我想執行 Bitcoin Core 守護程序的使用者帳戶登錄,啟動一個終端(如果我在 GUI 中),然後執行以下命令來編輯我的 crontab:

crontab -e

然後我添加以下行:

@reboot bitcoind -daemon

保存文件並退出。現在每次電腦啟動時,Bitcoin Core 守護程序都會啟動。在關機時,init/upstart/systemd/whatever 會向它發送一個 SIGTERM 信號,bitcoind 將擷取並解釋為啟動安全關機的命令。

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