バイナリ用のフラグであるこのスクリプトを実行するサービスを開始しようとしています。
スクリプトは次のとおりです。
./geth_linux --config ./config.toml --datadir ./mainnet --cache 100000 \
--rpc.allow-unprotected-txs --txlookuplimit 0 --http --ws \
--maxpeers 100 --syncmode=snap --snapshot=false --diffsync
バイナリディレクトリ/home/bscの端末でこのスクリプトを実行すると、必要な方法で実行されます。
サービスを開始すると、次のエラーが発生します。
(code=exited, status=203/EXEC)
これは私の.serviceファイルです。
[Unit]
Description=BSC Full Node
[Service]
User=bsc
Type=simple
WorkingDirectory=/home/bsc
ExecStart=/home/bsc/start.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
スクリプトを実行可能にしました。
chmod +x /home/bsc/start.sh
私も以下を実行しました。
chown +R bsc.bsc /home/bsc/*
また、スクリプトの最初の行ExecStart=/bin/bash /home/bsc/start.sh
を実行して追加してみましたが、やはり失敗しました。#!/bin/bash
混乱しています。
Ubuntu 20.04.3 LTS
システムエラーログ
Nov 24 04:25:14 rezonautik systemd[1]: Started BSC Full Node.
Nov 24 04:25:14 rezonautik bash[26939]: /home/bsc/start.sh: line 1: geth: command not found
Nov 24 04:25:14 rezonautik systemd[1]: bsc.service: Main process exited, code=exited, status=127/n/a
Nov 24 04:25:14 rezonautik systemd[1]: bsc.service: Failed with result 'exit-code'.
Nov 24 04:25:19 rezonautik systemd[1]: bsc.service: Scheduled restart job, restart counter is at 1.
Nov 24 04:25:19 rezonautik systemd[1]: Stopped BSC Full Node.
Nov 24 04:25:19 rezonautik systemd[1]: Started BSC Full Node.
Nov 24 04:25:19 rezonautik bash[26981]: /home/bsc/start.sh: line 1: geth: command not found
Nov 24 04:25:19 rezonautik systemd[1]: bsc.service: Main process exited, code=exited, status=127/n/a
ベストアンサー1
パスに問題があります(説明は通常一貫していません)。
説明では、スクリプトはshebang行で始まる必要があります/home/bsc/start.sh
。./geth_linux
エラーメッセージが言われましたline 1: geth: command not found
。それはgeth_linux
両方ではないと言います./geth_linux
。だから明らかに少し混乱があります。
次の場合にのみ電話してください。
- フルパス
/home/bsc/start.sh
(例:これが最善の解決策です) - パスなし、
geth_linux
つまり絶対ファイルパスを出力するコマンド./geth_linux
でのみ機能します。which