- /**
- * @brief Log active processes into the "process" table
- */
- function start_process() {
- $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
-
- $command = basename($trace[0]['file']);
-
- $this->remove_inactive_processes();
-
- dba::transaction();
-
- $r = q('SELECT `pid` FROM `process` WHERE `pid` = %d', intval(getmypid()));
- if (!DBM::is_result($r)) {
- dba::insert('process', array('pid' => getmypid(), 'command' => $command, 'created' => datetime_convert()));
- }
- dba::commit();
- }
-
- /**
- * @brief Remove inactive processes
- */
- function remove_inactive_processes() {
- dba::transaction();
-
- $r = q('SELECT `pid` FROM `process`');
- if (DBM::is_result($r)) {
- foreach ($r AS $process) {
- if (!posix_kill($process['pid'], 0)) {
- q('DELETE FROM `process` WHERE `pid` = %d', intval($process['pid']));
- }
- }
- }
- dba::commit();
- }
-
- /**
- * @brief Remove the active process from the "process" table
- */
- function end_process() {
- q('DELETE FROM `process` WHERE `pid` = %d', intval(getmypid()));
- }
-
- function get_useragent() {