How can I set up a cron job to monitor multiple PIs (via SSH) that are running the same daemon script (service)?
I was thinking of using a cron job to monitor the service status and write to a file on my server if the status of the service is active or inactive, and then I can later use the contents of that file to display the results of the Cron job onto a web page (but that is for me to figure out later).
I'm open to other options if someone can figure out an easier way using a different tool, E.g. bash script, python script, PHP etc,
Regarding your question
How to check if a daemon service is running
in RHEL/CentOS v4.x/5.x/6.x and Fedora Linux (older version) Verify Cron Service You can simply use any one of the following command to see if crond is running or not, enter:
$ pgrep crond
OR
$ service crond status
Sample outputs:
# crond (pid 4370) is running...
If it is not running type the following two command to start crond:
$ chkconfig crond on
$ service crond start
Verify cron is running by viewing log file, enter:
$ tail -f /var/log/cron
A note about CentOS/RHEL v7.x+ and latest version of Fedora Linux You need to use the following command to find out if the crond is running or not:
$ systemctl status crond.service
Sample outputs:
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
Active: active (running) since Tue 2015-05-19 14:53:32 EDT; 3min 7s ago
Main PID: 1292 (crond)
CGroup: /system.slice/crond.service
└─1292 /usr/sbin/crond -n
If not running configure the crond service to start automatically on boot:
$ sudo systemctl enable crond.service
$ sudo systemctl start crond.service
A note about Debian / Ubuntu Linux (older version) Cron service On a Debian and Ubuntu Linux cron logs its action logged to the syslog facility i.e. use /var/log/messages file:
$ tail -f /var/log/messages
Find out if cron daemon is running or not, enter:
$ pgrep cron
If not running start it, enter:
$ update-rc.d cron defaults
$ /etc/init.d/cron start
A note about Debian Linux v8.x+ and latest version of Ubuntu Linux The syntax is as follows to check if the cron service is running or not:
# systemctl status cron
Sample outputs:
â— cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled)
Active: active (running) since Tue 2015-05-19 11:49:32 IST; 12h ago
Docs: man:cron(8)
Main PID: 1053 (cron)
CGroup: /system.slice/cron.service
├─1053 /usr/sbin/cron -f
└─3020 /usr/bin/atop -a -w /var/log/atop/atop_20150520 600
If not running configure the crond service to start automatically on boot:
$ sudo systemctl enable cron.service
$ sudo systemctl start cron.service