Bitcoind

設置 bitcoind 在啟動 Ubuntu 17.04 時執行

  • December 20, 2021

我創建了一個 bitcoin.service 文件,如下所示:

<https://github.com/bitcoin/bitcoin/blob/master/contrib/init/bitcoind.service>

但是,當我將比特幣核心從原始碼建構為以下內容時,我已經對其進行了修改:

<https://gist.github.com/anonymous/7e1bca97739147d698327d7f3a119992>

它安裝到:

/lib/systemd/系統

顯然在這個版本的 Ubuntu 中它必須存在

它在我執行此命令時執行:

bitcoind -daemon -pid=/home/chris/.bitcoin/bitcoind.pid -
conf=/home/chris/.bitcoin/bitcoin.conf -datadir=/home/chris/.bitcoin/ 
-disablewallet

但是試圖執行:

systemctl start bitcoind

給出這個錯誤

bitcoind.service - Bitcoin's distributed currency daemon
  Loaded: loaded (/lib/systemd/system/bitcoind.service; enabled; 
vendor preset: enabled)
  Active: failed (Result: exit-code) since Sun 2017-10-15 17:27:38 
BST; 2s ago
 Process: 4180 ExecStart=/home/chris/.bitcoin/bitcoind -daemon -
pid=/home/chris/.bitcoin/bitcoind.pid -
conf=/home/chris/.bitcoin/bitcoin.conf -datadir=/home/chris/.bitcoin/ 
-disablewallet (code=exited, status=203

Oct 15 17:27:38 chris-GE60-2PL systemd[1]: bitcoind.service: Unit 
entered failed state.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: bitcoind.service: Failed 
with result 'exit-code'.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: bitcoind.service: Service 
hold-off time over, scheduling restart.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: Stopped Bitcoin's 
distributed currency daemon.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: bitcoind.service: Start 
request repeated too quickly.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: Failed to start Bitcoin's 
distributed currency daemon.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: bitcoind.service: Unit 
entered failed state.
Oct 15 17:27:38 chris-GE60-2PL systemd[1]: bitcoind.service: Failed 
with result 'exit-code'.

有誰知道我在這裡做錯了什麼?

我碰巧遇到了這個,我不知道你是否有這個工作。嘗試在bitcoind.service文件中為該ExecStart行使用正確的執行檔(您的要點的 11)。我的 bitcoind 安裝在/usr/bin/bitcoind.

我還用一個例子評論了你上面的要點。

它在我執行此命令時執行:

bitcoind -daemon -pid=/home/chris/.bitcoin/bitcoind.pid -
conf=/home/chris/.bitcoin/bitcoin.conf -datadir=/home/chris/.bitcoin/ 
-disablewallet

當您執行該命令時,您在伺服器中的哪個位置?在您的主文件夾的基本級別?您的服務文件ExecStart=必須指向相同的位置,並且目前它bitcoind/home/chris/.bitcoin/. 您確定在您的主文件夾bitcoind的目錄中嗎?.bitcoin

作為旁注,這是二進製文件的奇怪位置。考慮將bitcoindbitcoin-cli放在/usr/local/bin/. 這樣您就可以從伺服器中的任何位置執行它,而無需指定路徑。但是對於服務文件,您應該指定完整路徑,例如

ExecStart=/usr/local/bin/bitcoind -daemon -pid=/home/chris/.bitcoin/bitcoind.pid \
-conf=/home/chris/.bitcoin/bitcoin.conf -datadir=/home/chris/.bitcoin/ -disablewallet

您還應該考慮更改 PID 文件的位置,您也可以省略-datadir=/home/chris/.bitcoin/,因為bitcoind預設情況下會在該位置查找數據目錄,因為該服務是由使用者“克里斯”啟動的。這些建議取自您在文章中連結的官方比特幣模板。

例如sudo systemctl daemon-reload,在對 systemd 服務文件進行更改之後,不要忘記這樣做。sudo systemctl restart &lt;service-name.service&gt;

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