[Asterisk-Users] Graceful CLI/crontab reboot
Matt Gibson
gibson at experthost.com
Wed Oct 20 10:41:15 MST 2004
I have a script that I wrote that actually stops and restarts the server
(asterisk -rx "stop now" && su asterisk -c /usr/sbin/safe_asterisk).
It works fine on slackware, but not on fedora, not too sure why. You're
welcome to use this if you want.
---- script
#!/bin/bash
# must be running asterisk as a user for this to work 'out of the box'
# cp restart_asterisk.sh /usr/sbin
# chown root.bin /usr/sbin/restart_asterisk.sh (or wheel or whatever, i run it as root)
# chmod +x /usr/sbin/restart_asterisk
#
# then add to cron
# #crontab -e
#
# # this is to stop and start asterisk daily at 4:20am
# 20 4 * * * /usr/sbin/restart_asterisk.sh | mail root
# Variables
# user settings
SU="/bin/su"
SUUSER="asterisk"
USEROPT="-c /usr/sbin/safe_asterisk"
# asterisk specific
SAFEAST="/usr/sbin/safe_asterisk"
ASTERISK="/usr/sbin/asterisk"
PIDFILE="/var/run/asterisk/asterisk.pid"
# nothing to edit here..
if [ -f $SAFEAST ]; then
if [ -x !$SAFEAST ]; then
echo ""
echo "no asterisk to be run ... wussup"
# put mail thing here
exit 1
fi
else
echo ""
echo "no asterisk to be run ... wussup"
# put mail thing here
exit 1
fi
if [ -f $ASTERISK ]; then
#checks for pidfile existence
if [ -x $ASTERISK ]; then
if [ -f $PIDFILE ]; then
echo ""
echo -n "stopping and restarting asterisk:"
# stop asterisk
# figure out why that can't be a variable..
$ASTERISK -rx "stop now"
# make sure the pidfile disappears
while [ -f $PIDFILE ]; do
wait
done
# start asterisk
$SU $SUUSER $USEROPT
echo -n " successfull"
echo ""
exit 0
else
$SU $SUUSER $USEROPT
echo ""
echo -n "starting asterisk:"
echo -n " successfull"
echo ""
exit 0
fi
else
echo "asterisk not executable"
exit 1;
fi
else
echo "no asterisk executable .. fix things"
exit 1
fi
-- end script
Neil Cherry wrote:
> Andrew Edmond wrote:
>
>> Asterisk Community --
>>
>> I'm looking for a way to gracefully shutdown asterisk at least once a
>> day and bring it back online. I'm using Gentoo Linux and using
>> safe_asterisk from /etc/init.d/asterisk.
>>
>> Anybody have a handy CLI/crontab script that accomplishes this?
>>
>> Andrew
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Asterisk-Users mailing list
>> Asterisk-Users at lists.digium.com
>> http://lists.digium.com/mailman/listinfo/asterisk-users
>> To UNSUBSCRIBE or update options visit:
>> http://lists.digium.com/mailman/listinfo/asterisk-users
>
>
> How about putting this in cron, as root type crontab -e and then
> add the following:
>
> # reload asterisk every day at midnight exactly
> $00 00 * * * /etc/init.d/asterisk stop
> ; sleep 2 ; /etc/init.d/asterisk start
>
More information about the asterisk-users
mailing list