Então, finalmente consegui que as coisas funcionassem em um servidor Ubuntu 14.04. Aqui está como funciona a% final/etc/init/bitcoind.conf
de trabalho:
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
Foi basicamente apenas um monte de chute e checar o trabalho para fazer isso funcionar. Aqui está a parte importante:
expect fork
Essencialmente, isso está dizendo quantas vezes o processo alvo será bifurcado ao iniciar. Se você disser errado, ele vai ficar pendurado ao iniciar. Leia aqui para os detalhes sobre isso.
Uma outra pequena alteração:
oom score -500
Em vez de:
oom never
Não é uma mudança tão importante, mas depois de ler um pouco sobre o upstart e de ver uma sugestão em uma resposta do stackoverflow, oom never
quase nunca deve ser usado. Veja aqui para mais informações.