GETHサービスの起動中に問題が発生しました

GETHサービスの起動中に問題が発生しました

systemdサービスの起動に問題がありますgeth

サービス仕様ですgeth.service

[Unit]
Description=Geth

[Service]
Type=simple
User=eth
Restart=always
RestartSec=12
ExecStart=/home/eth/starteth.sh

[Install]
WantedBy=default.target

これはstarteth.shスクリプトです。

#!/usr/bin/env bash
geth --syncmode "fast" --rpc --rpcport "9820" --rpcaddr "127.0.0.1" --rpccorsdomain "*"

サービスの開始およびヘルスチェック中にエラーが発生しました。

root@server:~# sudo systemctl start geth
root@server:~# sudo systemctl status geth
● geth.service - Geth
   Loaded: loaded (/etc/systemd/system/geth.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Wed 2021-06-16 22:02:51 CEST; 3s ago
  Process: 19295 ExecStart=/home/eth/starteth.sh (code=exited, status=203/EXEC)
 Main PID: 19295 (code=exited, status=203/EXEC)

編集:OSはUbuntu 18です。

答え1

これはどこかに実行可能ファイルをstarteth.sh見つけることを期待するシェルスクリプトですが、systemdは非常に少ないファイルを使用しているため、見つからない可能性があります。そのような文書はどこにありますか?試してみてください。次に、inの前に正しい絶対パスを追加します。geth$PATH$PATHlocate gethfind / -name gethgethstarteth.sh

答え2

上記のように、gethを探す答えはそうです。 geth ファイルは /usr/bin/geth に存在します。

しかし、エラーが発生し続けます。

× geth.service - Ethereum go クライアント ロード済み: ロード済み (/etc/systemd/system/geth.service; 有効化、ベンダーデフォルト: 有効化) アクティビティ: 2023 年 4 月 26 日水曜日 13:00 以降 17 日以降の失敗(結果:終了)コード):37 UTC。 2分46秒前のプロセス: 2862 ExecStart=/usr/bin/geth --networkid 9988 --datadir /opt/ethpoa2/node1/data --port 30303 --ipcdisable > 基本 PID: 2862 コード=終了、ステータス=217 /ユーザー)CPU:1ms

4月26日 13:17:37 ip-172-31-87-252 systemd[1]: geth.service: '終了コード'のため失敗しました。 4月26日 13:17:37 ip-172-31-87-252 systemd[1]: geth.service: ジョブの再開がスケジュールされ、再開カウンタは 5 です。 4月26日 13:17:37 ip-172-31-87- 252 systemd[1]: Ethereum go クライアントが停止しました。 4月26日 13:17:37 ip-172-31-87-252 systemd[1]: geth.service: 起動要求が速すぎました。 4月26日 13:17:37 ip-172-31-87-252 systemd[1]: geth.service: '終了コード'のため失敗しました。 4月26日 13:17:37 ip-172-31-87-252 systemd[1]: Ethereum go クライアントを起動できません。

関連情報