diff options
| author | Jason D. McCormick <jason@mfamily.org> | 2020-04-14 21:06:28 -0400 |
|---|---|---|
| committer | Jason D. McCormick <jason@mfamily.org> | 2020-04-14 21:06:28 -0400 |
| commit | 1733e5fe839caff338a664a39208599afe8df42b (patch) | |
| tree | c15a80d60a818cfe9a0fc8dc64ac092cc5511de3 /allstar/allstar-restart | |
| parent | 820a97dcdd2a7c5bc6ae8bf5798578caa87ee77f (diff) | |
adding the big red button stuff
Diffstat (limited to 'allstar/allstar-restart')
| -rwxr-xr-x | allstar/allstar-restart | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/allstar/allstar-restart b/allstar/allstar-restart new file mode 100755 index 0000000..7432e43 --- /dev/null +++ b/allstar/allstar-restart @@ -0,0 +1,30 @@ +#!/usr/bin/perl + +use strict; + +use File::Temp qw/tempfile/; +use Sys::Hostname; + +my $host = hostname; + +# The init script for asterisk is really weak. Find +# all of the pids that are child pids of the +# safe_asterisk process which is launched as a nohup +# process rooted in /bin/sh. The astdn.sh script +# just does not work right at all to kill stuck children +my $sapid = qx(/usr/bin/pgrep safe_asterisk); + +# be maximally safe and don't do anything if there is +# no safe_asterisk process +if( length($sapid) > 0 ){ + my $apids = qx(/usr/bin/pstree -p $sapid); + $apids =~ s/[^\d]/ /g; + $apids =~ s/\s+/ /g; + system("/usr/bin/kill -9 $apids > /dev/null 2>&1"); + sleep 1; + unlink "/var/run/asterisk.ctl"; + unlink "/var/run/asterisk.pid"; + system("/usr/local/sbin/astup.sh > /dev/null 2>&1"); +} + +exit 0; |
