cc-2055: switch to init.d
-fix uninstall scripts -make daemon script for media-monitor and show-recorder -create pid file for liquidsoap -fix airtime-check-system -make sure all startup scripts are using exec
This commit is contained in:
parent
79e24e5af5
commit
079d9d36b0
|
@ -16,6 +16,8 @@ python ../python_apps/pypo/install/pypo-install.py
|
||||||
#python ".__DIR__."/../python_apps/show-recorder/install/recorder-install.py
|
#python ".__DIR__."/../python_apps/show-recorder/install/recorder-install.py
|
||||||
#python ../python_apps/show-recorder/install/recorder-install.py
|
#python ../python_apps/show-recorder/install/recorder-install.py
|
||||||
|
|
||||||
|
sleep 4
|
||||||
|
|
||||||
airtime-check-system
|
airtime-check-system
|
||||||
|
|
||||||
echo -e "\n******************************* Install Complete *******************************";
|
echo -e "\n******************************* Install Complete *******************************";
|
||||||
|
|
|
@ -12,6 +12,6 @@ exec 2>&1
|
||||||
export PYTHONPATH=${api_client_path}
|
export PYTHONPATH=${api_client_path}
|
||||||
|
|
||||||
# Note the -u when calling python! we need it to get unbuffered binary stdout and stderr
|
# Note the -u when calling python! we need it to get unbuffered binary stdout and stderr
|
||||||
python -u ${media_monitor_path}${media_monitor_script}
|
exec python -u ${media_monitor_path}${media_monitor_script}
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
USERID=pypo
|
||||||
|
GROUPID=pypo
|
||||||
|
NAME=Airtime
|
||||||
|
|
||||||
|
DAEMON=/usr/bin/airtime-media-monitor
|
||||||
|
PIDFILE=/var/run/airtime-media-monitor.pid
|
||||||
|
|
||||||
|
start () {
|
||||||
|
start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE --startas $DAEMON
|
||||||
|
}
|
||||||
|
|
||||||
|
stop () {
|
||||||
|
# Send TERM after 5 seconds, wait at most 30 seconds.
|
||||||
|
start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE
|
||||||
|
rm -f $PIDFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "${1:-''}" in
|
||||||
|
'start')
|
||||||
|
# start commands here
|
||||||
|
echo -n "Starting $NAME: "
|
||||||
|
start
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
# stop commands here
|
||||||
|
echo -n "Stopping $NAME: "
|
||||||
|
stop
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
'restart')
|
||||||
|
# restart commands here
|
||||||
|
echo -n "Restarting $NAME: "
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
'status')
|
||||||
|
# status commands here
|
||||||
|
/usr/bin/airtime-check-system
|
||||||
|
;;
|
||||||
|
*) # no parameter specified
|
||||||
|
echo "Usage: $SELF start|stop|restart|status"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -72,9 +72,11 @@ try:
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
current_script_dir = get_current_script_dir()
|
current_script_dir = get_current_script_dir()
|
||||||
print "Checking and removing any existing media monitor processes"
|
#print "Checking and removing any existing media monitor processes"
|
||||||
os.system("python %s/media-monitor-uninstall.py 1>/dev/null 2>&1"% current_script_dir)
|
#os.system("python %s/media-monitor-uninstall.py 1>/dev/null 2>&1"% current_script_dir)
|
||||||
time.sleep(5)
|
#time.sleep(5)
|
||||||
|
p = Popen("/etc/init.d/airtime-media-monitor stop", shell=True)
|
||||||
|
sts = os.waitpid(p.pid, 0)[1]
|
||||||
|
|
||||||
# Create users
|
# Create users
|
||||||
create_user("pypo")
|
create_user("pypo")
|
||||||
|
@ -93,6 +95,9 @@ try:
|
||||||
print "Creating symbolic links"
|
print "Creating symbolic links"
|
||||||
os.system("rm -f /usr/bin/airtime-media-monitor")
|
os.system("rm -f /usr/bin/airtime-media-monitor")
|
||||||
os.system("ln -s "+config["bin_dir"]+"/airtime-media-monitor /usr/bin/")
|
os.system("ln -s "+config["bin_dir"]+"/airtime-media-monitor /usr/bin/")
|
||||||
|
|
||||||
|
print "Installing media-monitor daemon"
|
||||||
|
shutil.copy(config["bin_dir"]+"/airtime-media-monitor-init-d", "/etc/init.d/airtime-media-monitor")
|
||||||
|
|
||||||
print "Waiting for processes to start..."
|
print "Waiting for processes to start..."
|
||||||
p = Popen("/etc/init.d/airtime-media-monitor start", shell=True)
|
p = Popen("/etc/init.d/airtime-media-monitor start", shell=True)
|
||||||
|
|
|
@ -37,21 +37,17 @@ try:
|
||||||
print 'Error loading config file: ', e
|
print 'Error loading config file: ', e
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
os.system("python /usr/bin/airtime-media-monitor-stop")
|
os.system("/etc/init.d/airtime-media-monitor stop")
|
||||||
|
|
||||||
print "Removing log directories"
|
print "Removing log directories"
|
||||||
remove_path(config["log_dir"])
|
remove_path(config["log_dir"])
|
||||||
|
|
||||||
print "Removing symlinks"
|
print "Removing symlinks"
|
||||||
os.system("rm -f /usr/bin/airtime-media-monitor-start")
|
os.system("rm -f /usr/bin/airtime-media-monitor")
|
||||||
os.system("rm -f /usr/bin/airtime-media-monitor-stop")
|
|
||||||
|
|
||||||
print "Removing application files"
|
print "Removing application files"
|
||||||
remove_path(config["bin_dir"])
|
remove_path(config["bin_dir"])
|
||||||
|
|
||||||
print "Removing daemontool script media-monitor"
|
|
||||||
remove_path("rm -rf /etc/service/media-monitor")
|
|
||||||
|
|
||||||
remove_user("pypo")
|
remove_user("pypo")
|
||||||
print "Uninstall complete."
|
print "Uninstall complete."
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
|
|
@ -14,4 +14,5 @@ export PYTHONPATH=${api_client_path}:$PYTHONPATH
|
||||||
|
|
||||||
# Note the -u when calling python! we need it to get unbuffered binary stdout and stderr
|
# Note the -u when calling python! we need it to get unbuffered binary stdout and stderr
|
||||||
exec python -u ${pypo_path}${pypo_script}
|
exec python -u ${pypo_path}${pypo_script}
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -4,17 +4,23 @@ USERID=pypo
|
||||||
GROUPID=pypo
|
GROUPID=pypo
|
||||||
NAME=Airtime
|
NAME=Airtime
|
||||||
|
|
||||||
DAEMON=/usr/bin/airtime-playout
|
DAEMON0=/usr/bin/airtime-playout
|
||||||
PIDFILE=/var/run/airtime.pid
|
PIDFILE0=/var/run/airtime-playout.pid
|
||||||
|
|
||||||
|
DAEMON1=/usr/bin/airtime-liquidsoap
|
||||||
|
PIDFILE1=/var/run/airtime-liquidsoap.pid
|
||||||
|
|
||||||
start () {
|
start () {
|
||||||
start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE --startas $DAEMON
|
start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE0 --startas $DAEMON0
|
||||||
|
start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE1 --startas $DAEMON1
|
||||||
}
|
}
|
||||||
|
|
||||||
stop () {
|
stop () {
|
||||||
# Send TERM after 5 seconds, wait at most 30 seconds.
|
# Send TERM after 5 seconds, wait at most 30 seconds.
|
||||||
start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE
|
start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE0
|
||||||
rm -f $PIDFILE
|
start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE1
|
||||||
|
rm -f $PIDFILE0
|
||||||
|
rm -f $PIDFILE1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -89,9 +89,11 @@ try:
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
current_script_dir = get_current_script_dir()
|
current_script_dir = get_current_script_dir()
|
||||||
print "Checking and removing any existing pypo processes"
|
#print "Checking and removing any existing pypo processes"
|
||||||
os.system("python %s/pypo-uninstall.py 1>/dev/null 2>&1"% current_script_dir)
|
#os.system("python %s/pypo-uninstall.py 1>/dev/null 2>&1"% current_script_dir)
|
||||||
time.sleep(5)
|
#time.sleep(5)
|
||||||
|
p = Popen("/etc/init.d/airtime-playout stop", shell=True)
|
||||||
|
sts = os.waitpid(p.pid, 0)[1]
|
||||||
|
|
||||||
# Create users
|
# Create users
|
||||||
create_user("pypo")
|
create_user("pypo")
|
||||||
|
|
|
@ -37,30 +37,17 @@ try:
|
||||||
print 'Error loading config file: ', e
|
print 'Error loading config file: ', e
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
os.system("python /usr/bin/airtime-playout-stop")
|
os.system("/etc/init.d/airtime-playout stop")
|
||||||
|
|
||||||
print "Removing cache directories"
|
print "Removing cache directories"
|
||||||
remove_path(config["cache_base_dir"])
|
remove_path(config["cache_base_dir"])
|
||||||
|
|
||||||
print "Removing symlinks"
|
print "Removing symlinks"
|
||||||
os.system("rm -f /usr/bin/airtime-playout-start")
|
os.system("rm -f /usr/bin/airtime-playout")
|
||||||
os.system("rm -f /usr/bin/airtime-playout-stop")
|
|
||||||
|
|
||||||
print "Removing pypo files"
|
print "Removing pypo files"
|
||||||
remove_path(config["bin_dir"])
|
remove_path(config["bin_dir"])
|
||||||
|
|
||||||
print "Removing daemontool script pypo"
|
|
||||||
remove_path("/etc/service/pypo")
|
|
||||||
|
|
||||||
if os.path.exists("/etc/service/pypo-fetch"):
|
|
||||||
remove_path("/etc/service/pypo-fetch")
|
|
||||||
|
|
||||||
if os.path.exists("/etc/service/pypo-push"):
|
|
||||||
remove_path("/etc/service/pypo-push")
|
|
||||||
|
|
||||||
print "Removing daemontool script pypo-liquidsoap"
|
|
||||||
remove_path("/etc/service/pypo-liquidsoap")
|
|
||||||
|
|
||||||
remove_user("pypo")
|
remove_user("pypo")
|
||||||
print "Pypo uninstall complete."
|
print "Pypo uninstall complete."
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
|
|
@ -16,10 +16,11 @@ exec 2>&1
|
||||||
|
|
||||||
export PYTHONPATH=${api_client_path}
|
export PYTHONPATH=${api_client_path}
|
||||||
|
|
||||||
su ${recorder_user} -c "python -u ${recorder_path}${recorder_script}"
|
|
||||||
|
#this line works: su ${recorder_user} -c "python -u ${recorder_path}${recorder_script}"
|
||||||
|
exec python -u ${recorder_path}${recorder_script}
|
||||||
|
|
||||||
#ecasound does not work when recorder script is called with setuidgid.
|
#ecasound does not work when recorder script is called with setuidgid.
|
||||||
#setuidgid ${recorder_user} python -u ${recorder_path}${recorder_script}
|
#setuidgid ${recorder_user} python -u ${recorder_path}${recorder_script}
|
||||||
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
USERID=pypo
|
||||||
|
GROUPID=pypo
|
||||||
|
NAME=Airtime
|
||||||
|
|
||||||
|
DAEMON=/usr/bin/airtime-show-recorder
|
||||||
|
PIDFILE=/var/run/airtime-show-recorder.pid
|
||||||
|
|
||||||
|
start () {
|
||||||
|
start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE --startas $DAEMON
|
||||||
|
}
|
||||||
|
|
||||||
|
stop () {
|
||||||
|
# Send TERM after 5 seconds, wait at most 30 seconds.
|
||||||
|
start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE
|
||||||
|
rm -f $PIDFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "${1:-''}" in
|
||||||
|
'start')
|
||||||
|
# start commands here
|
||||||
|
echo -n "Starting $NAME: "
|
||||||
|
start
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
# stop commands here
|
||||||
|
echo -n "Stopping $NAME: "
|
||||||
|
stop
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
'restart')
|
||||||
|
# restart commands here
|
||||||
|
echo -n "Restarting $NAME: "
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
'status')
|
||||||
|
# status commands here
|
||||||
|
/usr/bin/airtime-check-system
|
||||||
|
;;
|
||||||
|
*) # no parameter specified
|
||||||
|
echo "Usage: $SELF start|stop|restart|status"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -70,9 +70,11 @@ try:
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
current_script_dir = get_current_script_dir()
|
current_script_dir = get_current_script_dir()
|
||||||
print "Checking and removing any existing recorder processes"
|
#print "Checking and removing any existing recorder processes"
|
||||||
os.system("python %s/recorder-uninstall.py 1>/dev/null 2>&1"% current_script_dir)
|
#os.system("python %s/recorder-uninstall.py 1>/dev/null 2>&1"% current_script_dir)
|
||||||
time.sleep(5)
|
#time.sleep(5)
|
||||||
|
p = Popen("/etc/init.d/airtime-show-recorder stop", shell=True)
|
||||||
|
sts = os.waitpid(p.pid, 0)[1]
|
||||||
|
|
||||||
# Create users
|
# Create users
|
||||||
create_user("pypo")
|
create_user("pypo")
|
||||||
|
@ -95,7 +97,10 @@ try:
|
||||||
|
|
||||||
print "Creating symbolic links"
|
print "Creating symbolic links"
|
||||||
os.system("rm -f /usr/bin/airtime-show-recorder")
|
os.system("rm -f /usr/bin/airtime-show-recorder")
|
||||||
os.system("ln -s "+config["bin_dir"]+"/airtime-show-recorder /usr/bin/")
|
os.system("ln -s "+config["bin_dir"]+"/airtime-show-recorder /usr/bin/")
|
||||||
|
|
||||||
|
print "Installing show-recorder daemon"
|
||||||
|
shutil.copy(config["bin_dir"]+"/airtime-show-recorder-init-d", "/etc/init.d/airtime-show-recorder")
|
||||||
|
|
||||||
print "Waiting for processes to start..."
|
print "Waiting for processes to start..."
|
||||||
p = Popen("/etc/init.d/airtime-show-recorder start", shell=True)
|
p = Popen("/etc/init.d/airtime-show-recorder start", shell=True)
|
||||||
|
|
|
@ -37,14 +37,13 @@ try:
|
||||||
print 'Error loading config file: ', e
|
print 'Error loading config file: ', e
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
os.system("python /usr/bin/airtime-show-recorder-stop")
|
os.system("/etc/init.d/airtime-show-recorder stop")
|
||||||
|
|
||||||
print "Removing log directories"
|
print "Removing log directories"
|
||||||
remove_path(config["log_dir"])
|
remove_path(config["log_dir"])
|
||||||
|
|
||||||
print "Removing symlinks"
|
print "Removing symlinks"
|
||||||
os.system("rm -f /usr/bin/airtime-show-recorder-start")
|
os.system("rm -f /usr/bin/airtime-show-recorder")
|
||||||
os.system("rm -f /usr/bin/airtime-show-recorder-stop")
|
|
||||||
|
|
||||||
print "Removing application files"
|
print "Removing application files"
|
||||||
remove_path(config["bin_dir"])
|
remove_path(config["bin_dir"])
|
||||||
|
@ -52,9 +51,6 @@ try:
|
||||||
print "Removing media files"
|
print "Removing media files"
|
||||||
remove_path(config["base_recorded_files"])
|
remove_path(config["base_recorded_files"])
|
||||||
|
|
||||||
print "Removing daemontool script recorder"
|
|
||||||
remove_path("rm -rf /etc/service/recorder")
|
|
||||||
|
|
||||||
remove_user("pypo")
|
remove_user("pypo")
|
||||||
print "Uninstall complete."
|
print "Uninstall complete."
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
|
|
@ -24,7 +24,7 @@ AirtimeCheck::CheckRabbitMqConnection($airtimeIni);
|
||||||
AirtimeCheck::CheckApacheVHostFiles();
|
AirtimeCheck::CheckApacheVHostFiles();
|
||||||
|
|
||||||
AirtimeCheck::GetAirtimeServerVersion($pypoCfg);
|
AirtimeCheck::GetAirtimeServerVersion($pypoCfg);
|
||||||
AirtimeCheck::CheckPypoRunning();
|
AirtimeCheck::CheckAirtimePlayoutRunning();
|
||||||
AirtimeCheck::CheckLiquidsoapRunning();
|
AirtimeCheck::CheckLiquidsoapRunning();
|
||||||
AirtimeCheck::CheckIcecastRunning();
|
AirtimeCheck::CheckIcecastRunning();
|
||||||
|
|
||||||
|
@ -71,38 +71,36 @@ class AirtimeCheck {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function CheckPypoRunning()
|
public static function CheckAirtimePlayoutRunning()
|
||||||
{
|
{
|
||||||
$command = "sudo svstat /etc/service/pypo";
|
|
||||||
exec($command, $output, $result);
|
//check if airtime-playout.pid exists
|
||||||
|
|
||||||
|
//if it exists we need to get the process id
|
||||||
|
//from the file as well as the time the process
|
||||||
|
//has been running. We can get the latter from
|
||||||
|
//the timestamp of the file
|
||||||
|
$filename = "/var/run/airtime-playout.pid";
|
||||||
|
|
||||||
|
$pid = false;
|
||||||
|
$numSecondsRunning = 0;
|
||||||
|
|
||||||
|
if (file_exists($filename)){
|
||||||
|
//first get pid
|
||||||
|
$pid = trim(file_get_contents($filename));
|
||||||
|
|
||||||
|
|
||||||
$key_value = split(":", $output[0]);
|
//now lets get the running time
|
||||||
$value = trim($key_value[1]);
|
$lastModified = filemtime($filename);
|
||||||
|
$currentTime = time();
|
||||||
|
|
||||||
$status = AirtimeCheck::CHECK_FAILED;
|
$numSecondsRunning = $currentTime - $lastModified;
|
||||||
$pos = strpos($value, "pid");
|
|
||||||
if ($pos !== false){
|
|
||||||
$start = $pos + 4;
|
|
||||||
$end = strpos($value, ")", $start);
|
|
||||||
$status = substr($value, $start, $end-$start);
|
|
||||||
} else {
|
|
||||||
self::$check_system_ok = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
output_status("PLAYOUT_ENGINE_PROCESS_ID", $status);
|
output_status("PLAYOUT_ENGINE_PROCESS_ID", $pid);
|
||||||
|
|
||||||
$status = AirtimeCheck::CHECK_FAILED;
|
output_status("PLAYOUT_ENGINE_RUNNING_SECONDS", $numSecondsRunning);
|
||||||
$pos = strpos($value, ")");
|
if (is_numeric($numSecondsRunning) && (int)$numSecondsRunning < 3) {
|
||||||
if ($pos !== false){
|
|
||||||
$start = $pos + 2;
|
|
||||||
$end = strpos($value, " ", $start);
|
|
||||||
$status = substr($value, $start, $end-$start);
|
|
||||||
} else {
|
|
||||||
self::$check_system_ok = false;
|
|
||||||
}
|
|
||||||
output_status("PLAYOUT_ENGINE_RUNNING_SECONDS", $status);
|
|
||||||
if (is_numeric($status) && (int)$status < 3) {
|
|
||||||
self::$check_system_ok = false;
|
self::$check_system_ok = false;
|
||||||
output_msg("WARNING! It looks like the playout engine is continually restarting.");
|
output_msg("WARNING! It looks like the playout engine is continually restarting.");
|
||||||
$command = "tail -10 /var/log/airtime/pypo/main/current";
|
$command = "tail -10 /var/log/airtime/pypo/main/current";
|
||||||
|
@ -115,39 +113,36 @@ class AirtimeCheck {
|
||||||
|
|
||||||
public static function CheckLiquidsoapRunning()
|
public static function CheckLiquidsoapRunning()
|
||||||
{
|
{
|
||||||
$command = "sudo svstat /etc/service/pypo-liquidsoap";
|
//check if airtime-playout.pid exists
|
||||||
exec($command, $output, $result);
|
|
||||||
|
|
||||||
$key_value = split(":", $output[0]);
|
//if it exists we need to get the process id
|
||||||
$value = trim($key_value[1]);
|
//from the file as well as the time the process
|
||||||
|
//has been running. We can get the latter from
|
||||||
|
//the timestamp of the file
|
||||||
|
$filename = "/var/run/airtime-liquidsoap.pid";
|
||||||
|
|
||||||
$status = AirtimeCheck::CHECK_FAILED;
|
$pid = false;
|
||||||
$pos = strpos($value, "pid");
|
$numSecondsRunning = 0;
|
||||||
if ($pos !== false){
|
|
||||||
$start = $pos + 4;
|
if (file_exists($filename)){
|
||||||
$end = strpos($value, ")", $start);
|
//first get pid
|
||||||
$status = substr($value, $start, $end-$start);
|
$pid = trim(file_get_contents($filename));
|
||||||
} else {
|
|
||||||
self::$check_system_ok = false;
|
|
||||||
|
//now lets get the running time
|
||||||
|
$lastModified = filemtime($filename);
|
||||||
|
$currentTime = time();
|
||||||
|
|
||||||
|
$numSecondsRunning = $currentTime - $lastModified;
|
||||||
}
|
}
|
||||||
|
|
||||||
output_status("LIQUIDSOAP_PROCESS_ID", $status);
|
output_status("LIQUIDSOAP_PROCESS_ID", $pid);
|
||||||
|
|
||||||
$status = AirtimeCheck::CHECK_FAILED;
|
output_status("LIQUIDSOAP_RUNNING_SECONDS", $numSecondsRunning);
|
||||||
$pos = strpos($value, ")");
|
if (is_numeric($numSecondsRunning) && (int)$numSecondsRunning < 3) {
|
||||||
if ($pos !== false){
|
|
||||||
$start = $pos + 2;
|
|
||||||
$end = strpos($value, " ", $start);
|
|
||||||
$status = substr($value, $start, $end-$start);
|
|
||||||
} else {
|
|
||||||
self::$check_system_ok = false;
|
self::$check_system_ok = false;
|
||||||
}
|
output_msg("WARNING! It looks like the playout engine is continually restarting.");
|
||||||
|
$command = "tail -10 /var/log/airtime/pypo/main/current";
|
||||||
output_status("LIQUIDSOAP_RUNNING_SECONDS", $status);
|
|
||||||
if (is_numeric($status) && (int)$status < 3) {
|
|
||||||
self::$check_system_ok = false;
|
|
||||||
output_msg("WARNING! It looks like liquidsoap is continually restarting.");
|
|
||||||
$command = "tail -10 /var/log/airtime/pypo-liquidsoap/main/current";
|
|
||||||
exec($command, $output, $result);
|
exec($command, $output, $result);
|
||||||
foreach ($output as $line) {
|
foreach ($output as $line) {
|
||||||
output_msg($line);
|
output_msg($line);
|
||||||
|
|
Loading…
Reference in New Issue