Warning: session_start(): open(/var/lib/php/sessions/sess_nvag62u45rqaad62ipokbgv9d0, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
static double delay = 30.0, timeout = 30.0;
static int consecutiveFailsThreshold = 2;
sbool v6;
static int consecutiveFails;
static volatile S status;
p {
bot("Stefan's OS Watch Dog.");
//printWithDateAndTimeInThisThread();
repeat with sleep delay {
bool ok = false;
pcall {
long time = sysNow();
S s = evalWithTimeoutOrNull(timeout, func -> S {
sendOpt("Stefan's OS.", "swing latency")
});
if (isInteger(s)) {
ok = true;
consecutiveFails = 0;
printAndProgramLog(status = "Stefan's OS OK - Swing latency " + s + " ms, " + (sysNow()-time) + " ms");
v6 = isProgramRunning(#1016478);
}
}
if (!ok) {
++consecutiveFails;
printAndProgramLog(status = "Stefan's OS fail #" + consecutiveFails + " of " + consecutiveFailsThreshold);
pcall { osFailActivity(); }
}
}
}
svoid osFailActivity {
if (consecutiveFails >= consecutiveFailsThreshold) {
printAndProgramLog("RESTARTING STEFAN'S OS " + (v6 ? "v6" : "v5") + ".");
consecutiveFails = 0;
hardKillProgram(#1016005);
hardKillProgram(#1016478);
nohupJavax(v6 ? #1016478 : #1016005);
}
}
answer {
if "status" ret status;
}