5
1
On Ubuntu 14.04 I have not been able to get the Bitcoin daemon to automatically restart. Rarely the daemon dies and it is important that it starts again without manual intervention. To get it to start automatically with Upstart I have followed the guide linked below. It starts with sudo start bitcoind as expected but the service does not restart if it fails.
Ubuntu Linux — How do I start bitcoind as a service to run automatically?
My conf file in /etc/init/ is as follows.
description "bitcoind"
start on filesystem
stop on runlevel [!2345]
oom score -500
expect fork
respawn
respawn limit 20 90 # 10 times in 60 seconds
script
user=bitcoinuser
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 --startas $cmd -b --nicelevel 15 -m
end script
If I run ps -aux | grep bitcoind to get the process ID and kill it the daemon does not restart as desired. I have followed the guide and cannot see what is wrong with the set up. As a side note sudo stop bitcoind does not actually stop it from running.
Any help on this would be appreciated.
I'm not that well versed in Linux myself, but you should be able to run Bitcoind with regular user rights. Why do you use
sudo start bitcoind?My Bitcoin Node on a RaspberryPi had been crashing every once in a while from overload, so I had just put a command in a cron job that tries to start it every hour. If its already running, no problem. If it wasn't it is down no more than an hour. – Murch – 2015-11-13T13:40:54.343
Starting as a normal user I get the following error
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.13" (uid=1002 pid=5367 comm="start bitcoind ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")– Peter Bushnell – 2015-11-13T13:58:56.213Sorry, I'm not familiar with the script you're using. I meant, I have installed Bitcoin with a regular account and then could start it using
bitcoind, I didn't think that it would need to run with admin rights. But perhaps you need it because you are running it from another user account? Sorry that I'm not able to help, but I really don't know too much about Linux. – Murch – 2015-11-13T14:15:18.933Looks like he is running bitcoind as a normal user (bitcoinuser), he only uses the
startcommand as root to trigger the service to start. (I'm not familiar with the latest Ubuntu, the more common command in linux would beservice bitcoind start). Murch's crontab suggestion is probably easiest. – Jannes – 2015-11-13T14:26:44.040I agree. This is not working for me and I've spent far too much time working on this when a simple cron job would work. So that is what I am going to do, thanks for the suggestion Murch. – Peter Bushnell – 2015-11-13T16:11:51.900
Alright, I'll put it as an answer. – Murch – 2015-11-16T23:43:56.487