centos7安装supervisord管理geth进程

1:安装supervisor

yum install epel-release

yum install -y supervisor

supervisor没有发布在标准的CentOS源在,需要安装epel源。这种方式安装的可能不是最新版本,但比较方便,安装完成之后,配置文件会自动帮你生成。并且会自动加入到系统服务里面 可以随系统启动而启动 

对应的执行文件放到:/usr/bin里面了

默认配置文件:/etc/supervisord.conf

进程管理配置文件放到:/etc/supervisord.d/目录下即可

默认日志文件:/tmp/supervisord.log,可以查看进程的启动信息

2:执行sudo vim /etc/supervisor/supervisord.conf 编辑文件

在文件底部的[include]的files后面加上值

/home/blockchain/eth/eth-private/supervisord_geth.conf 与前面的conf空格隔开

3:在/home/blockchain/eth/eth-private/目录里面创建supervisord_geth.conf 文件,文件内容如下


;下面的值后面的;前面都要加上空格 不然会报错哦

; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名

;command这里的geth 要写全路径 不然会报not such file相关的问题 

;要加上--datadir设置datadir路径,不然会默认为datadir为/root/.ethereum,而这个目录是不存在的进而会mkdir /root/.ethereum但是因为没有这个权限,所以又继续报了权限不足问题

;要加上--ethash.dagdir 设置ethashdagdir路径,不然会默认为/root/.ethash,而这个目录是不存在的进而会mkdir /root/.ethash但是因为没有这个权限,所以又继续报了权限不足问题

;要加上console 2>>/home/blockchain/eth/eth-private/geth.log不然会报invalid command &的错误 很奇怪啊 不明白呢
[program:geth]
command= nohup /home/blockchain/eth/go-ethereum-1.8.13/build/bin/geth console 2>>/home/blockchain/eth/eth-private/geth.log --datadir /home/blockchain/.ethereum --ethash.dagdir "/home/blockchain/.ethash" --rpc --rpcaddr 192.168.1.190 --rpcport 8545 --rpccorsdomain "*" --rpcapi admin,personal,web3,eth --mine  &
;numprocs=1                 ; 默认为1
;process_name=%(program_name)s   ; 默认为 %(program_name)s,即 [program:x] 中的 x
directory=/home/blockchain/   ; 执行 command 之前,先切换到工作目录 报 couldn't chdir to /home/blockchain/的错误,是因为directory=...; 这一行分号前面没有加空格,加上之后就没有报错了
user=blockchain                 ; 使用 blockchain 用户来启动该进程

; 程序崩溃时自动重启,重启次数是有限制的,默认为3次
autorestart=true
redirect_stderr=true        ; 重定向输出的日志
stdout_logfile = /home/blockchain/eth/eth-private/supervisord_geth.log
loglevel=info


4:然后电脑重新启动之后 supervisord服务启动 然后supervisord会将geth进程启动起来

可以通过ps aux|grep geth查看geth是否运行

通过ps aux|grep supervisord是否已启动

5:也可以通过 sudo /usr/bin/supervisord -c /etc/supervisord.conf来启动supervisord

6:关闭supervisord有两种方式

        6.1 ps aux|grep supervisord得到进程PID

            kill -s SIGTERM PID关闭进程

       6.2 sudo kpill 进程名 如sudo kpill supervisord来关闭进程

 

7:如果没有开机启动成功 估计就是安装的权限问题 执行

systemctl enable supervisord

然后会要求输入root密码去加入开机启动服务里面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值