/dev/null | grep "wevia-snap-archiver" | grep -v grep')); $running = !empty($ps); switch ($action) { case 'launch': if ($running) { echo json_encode(['ok'=>false,'msg'=>'Already running: '.$ps]); break; } shell_exec('rm -f /tmp/snap-archiver.lock /tmp/wevia-snapshot-archiver.log 2>/dev/null'); shell_exec('echo /tmp/snap-final.sh | at now 2>&1'); sleep(3); $ps2 = trim(shell_exec('ps aux 2>/dev/null | grep "wevia-snap-archiver" | grep -v grep')); echo json_encode(['ok'=>true,'msg'=>'LAUNCHED','process'=>$ps2]); break; case 'kill': shell_exec('pkill -f wevia-snap-archiver 2>/dev/null; rm -f /tmp/snap-archiver.lock'); echo json_encode(['ok'=>true,'msg'=>'KILLED']); break; default: // status $log = @file_get_contents('/tmp/wevia-snapshot-archiver.log') ?: ''; $last = implode("\n", array_slice(explode("\n", trim($log)), -10)); $hz = trim(shell_exec('python3 /opt/weval-l99/wevia-snap-archiver.py list 2>&1')); echo json_encode(['running'=>$running,'process'=>$ps,'snapshots'=>$hz,'log'=>$last]); }