Ubuntu Linux – 我如何將 bitcoind 作為服務啟動以自動執行?
當我的 Ubuntu 伺服器啟動時,我已經設置了一堆其他服務來自動啟動(wicd-daemon 和 VPN 等服務),但我不知道如何設置比特幣守護程序(bitcoind)在什麼時候自動啟動系統啟動。(這是在沒有 GUI 或連接監視器的無頭系統上。)
我正在嘗試學習如何將比特幣與 Python 集成,以便編寫支持比特幣的服務,但我希望系統在系統啟動時自動啟動 bitcoind,這樣我就不必手動進行了。(不得不一次下載一大堆區塊鍊是一件很痛苦的事。它會在正常執行時間吃掉。)
如果這個問題已經被問過,請引導我回答。我搜尋但找不到它。否則,請幫我解決這個問題!
非常感謝。
編輯: Ubuntu 發行版從 14.10 開始的警告購買者 -
init
已被選中upstart
並在未來分階段進行。我不知道什麼時候會完成,也不知道它會對新貴腳本產生什麼影響。從 RentFree 所指的頁面中提取;請注意,它假設您已經創建了一個
bitcoinuser
為安全起見呼叫的使用者:對於那些執行 ubuntu 的人,您可能熟悉upstart
sysvinit
,它是樣式引導 (/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
。您可能希望將user、cmd和pidfile更改為與您的配置匹配的內容,或者您可以使用以下內容作為模板:
/home/bitcoinuser /home/bitcoinuser/bitcoind.pid /home/bitcoinuser/bin/bitcoind
儘管一位使用者建議對配置進行以下更正:
home=/home/$user cmd=/usr/bin/bitcoind pidfile=$home/.bitcoin/bitcoind.pid
另一個建議設置
nice
程序,這樣它就不會佔用 CPUexec 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 將擷取並解釋為啟動安全關機的命令。