$pid])) { $return = DBA::insert('process', ['pid' => $pid, 'command' => $command, 'created' => DateTimeFormat::utcNow()]); } DBA::commit(); return $return; } /** * Remove a process row by pid. If the pid parameter is omitted, we use the current pid * * @param string $pid * @return bool */ public static function deleteByPid($pid = null) { if ($pid === null) { $pid = getmypid(); } return DBA::delete('process', ['pid' => $pid]); } /** * Clean the process table of inactive physical processes */ public static function deleteInactive() { DBA::transaction(); $processes = DBA::select('process', ['pid']); while($process = DBA::fetch($processes)) { if (!posix_kill($process['pid'], 0)) { self::deleteByPid($process['pid']); } } DBA::commit(); } }