I've set a script in my root crontab that is supposed to restart my machine with the reboot
command.
However, I am getting a reboot: command not found
despite the fact that reboot
is in the root user's path.
$ sudo su
$ which reboot
/sbin/reboot
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin
My script:
#!/bin/bash
ping 8.8.8.8 -c 1 > /dev/null 2>&1; exit_code=$?
time_stamp=$(date +"%Y%m%d-%H%M")
if [ $exit_code -ne 0 ]; then
(1>&2 echo "$time_stamp: failed with exit code $exit_code; restarting now")
reboot
else
echo "$time_stamp: ok"
fi
root user crontab:
$ sudo crontab -l
58 * * * * /home/pi/github/ping-restart/ping-restart.sh >> /home/pi/github/ping-restart/cron.log 2>&1
$ sudo su
58 * * * * /home/pi/github/ping-restart/ping-restart.sh >> /home/pi/github/ping-restart/cron.log 2>&1
...yes, this is only a temporary workaround while I figure out why the internet keeps dropping.
/sbin/reboot
... – Raspingwhich reboot
in crontab has no output (indicating not found), whilewhich /sbin/reboot
has the output/sbin/reboot
, as expected. Any idea whyreboot
by itself does not work? – Holocainecron
has no clue of where the reboot command is, so you have to give the location. Incron
only certain commands can be called using just the name, so often you need to give it the absolute path. – Raspingdate
as in/bin/date
,basename
as in/usr/bin/basename
,traceroute
as in/usr/sbin/traceroute
). What's so special aboutreboot
? – Holocaine