Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm setting up Monit to monitor the Bitcoin daemon to make sure it runs 24/7 and restarts it if something goes wrong. The Bitcoin binary is at /usr/local/bin/bitcoind, and the data directory is at /home/bitcoin/.bitcoin.

I have told Monit to monitor the daemon through the pid file /var/run/bitcoind.pid every 2 minutes and start / stop the daemon as the user bitcoin. However, this is where I've spent countless hours trying to figure what is wrong.

Because I do not have a startup / upstart script for bitcoind, I have it directly pass commands to the binary itself, which can be seen with the following /etc/monit/monitrc file:

set daemon 120
set logfile /var/log/monit.log 

check process bitcoind with pidfile "/var/run/bitcoind.pid"
    start program "/usr/local/bin/bitcoind -pid=/var/run/bitcoind.pid -datadir=/home/bitcoin/.bitcoin -daemon"
        as uid bitcoin and gid bitcoin
    stop program "/usr/local/bin/bitcoind stop"
        as uid bitcoin and gid bitcoin
    if failed port 8332 for 2 cycles then restart

When the system startups, I login as the user bitcoin and initiate ps -u bitcoin. Sure enough, the bitcoind appears as running under my user. However, when I get Monit to display the status through monit status, the response shows first as execution failed, then not monitored.

I've checked /var/run/ while bitcoind is running and found that there is no such file named as bitcoind.pid, which leaves me to think that the bitcoind does not have sufficient permissions to create a pid file in /var/run while running as user bitcoin.

For an alternative solution, I left the pid file to created in the default location (/home/bitcoin/.bitcoin/bitcoind.pid), but the root can not access it, which also leads to the same result.

The /var/log/monit.log file provides no useful information, so have the 'wrappers' I've tried.

This can all be solved by running bitcoind as root, however I am worried about security issues.

share|improve this question
    
I cant get monit to work - bitcoind runs as root and monit too. All the cpu triggers and emails work but bitcoin crashed every day about 23.30 and I loose a night of mining. monit just does not do anything. Any advice? –  ppumkin Apr 3 '13 at 8:03

1 Answer 1

You are correct in surmising that the bitcoin user won't have permission to write to /var/run, however root will be able to read /home/bitcoin/.bitcoin/bitcoind.pid. I would leave the PID in the latter location, and then work some more at figuring out why monit isn't reading that second location. My bet would be a typo in the path in the monit config.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.