启动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)

编辑:操作系统是 Ubuntu 18

答案1

starteth.sh是一个 shell 脚本,期望找到一个名为geth中某处的可执行文件$PATH,但很可能找不到,因为$PATHsystemd 使用的文件非常少。哪里有这样的文件吗?尝试locate gethfind / -name geth找到它。然后在gethin前面添加starteth.sh正确的绝对路径。

答案2

正如上面提到的找到 geth 的答案,所以是的文件 geth 存在 /usr/bin/geth

但错误仍然出现

× geth.service - 以太坊 go 客户端 已加载:已加载(/etc/systemd/system/geth.service;已启用;供应商预设:已启用) 活动:自 2023 年 4 月 26 日星期三 13:17 起失败(结果:退出代码) :37 世界标准时间; 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]:已停止以太坊 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]: 无法启动以太坊 go 客户端。

相关内容