如何在启动时启动 /usr/bin/bitcoind?

如何在启动时启动 /usr/bin/bitcoind?

我尝试/usr/bin/bitcoind在启动时启动但没有成功。

我有这个脚本/etc/init/bitcoind.conf

description "bitcoind"

start on filesystem
stop on runlevel [!2345]
oom never
expect daemon
respawn
respawn limit 10 60 # 10 times in 60 seconds

script
user=andre
home=/home/$user
cmd=/usr/bin/bitcoind
pidfile=$home/.bitcoin/bitcoind.pid
# Don't change anything below here unless you know what you're doing
[[ -e $pidfile && ! -d "/proc/$(cat $pidfile)" ]] && rm $pidfile
[[ -e $pidfile && "$(cat /proc/$(cat $pidfile)/cmdline)" != $cmd* ]] && rm $pidfile
exec start-stop-daemon --start -c $user --chdir $home --pidfile $pidfile --starta $cmd -b -m
end script

创建此脚本后,我运行了以下命令:sudo initctl reload-configuration

当我重新启动 Ubuntu 时,“bitcoind”没有启动。我只能通过手动运行以下命令来启动“bitcoind”:

sudo start bitcoind

关于如何在启动时启动“bitcoind”有什么线索吗?

答案1

所以我终于在 Ubuntu 14.04 服务器上运行了。最终的运行效果如下/etc/init/bitcoind.conf

description "bitcoind"

start on filesystem
stop on runlevel [!2345]
oom score -500
expect fork
respawn
respawn limit 10 60 # 10 times in 60 seconds

script
    user=bitcoind
    home=/home/$user
    cmd=$home/bin/bitcoind
    pidfile=$home/bitcoind.pid
    # Don't change anything below here unless you know what you're doing
    [[ -e $pidfile && ! -d "/proc/$(cat $pidfile)" ]] && rm $pidfile
    [[ -e $pidfile && "$(cat /proc/$(cat $pidfile)/cmdline)" != $cmd* ]] && rm $pidfile
    exec start-stop-daemon --start -c $user --chdir $home --pidfile $pidfile -m --startas $cmd
end script

基本上,要实现这个功能,只需要做大量的猜测和检查。以下是重点:

expect fork

本质上,这是告诉 upstart 在启动时目标进程将被分叉多少次。如果你输入错误,它会在启动时挂起。阅读这里有关这方面的具体信息。

另外一个较小的变化是:

oom score -500

代替:

oom never

这不是一个关键的变化,但在阅读了关于 upstart 的一些内容并在 stackoverflow 答案中看到建议后,oom never几乎不应该使用它。参见这里了解更多信息。

答案2

这就是我所做的。

检查文件/etc/rc.localcat /etc/rc.local

你会看到类似这样的内容

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

然后只需添加这一行

bitcoind -daemon     

你可以使用以下选项执行 bitcoind-datadir=/数据路径/或者-conf=/路径/到/bitcoin.conf如果你需要它。

相关内容