X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fdaemon.php;h=eaeecc10589531325cd2506fbd421300ad11a2f4;hb=fffacaa27c45db37196cfaac5b7e098c5afcf952;hp=9a3e1e7e9dde7958b6f3643cdbb58521cf89f732;hpb=be5d113fc684fcbe41b8374c62bfeb0f267216b7;p=quix0rs-gnu-social.git diff --git a/lib/daemon.php b/lib/daemon.php index 9a3e1e7e9d..eaeecc1058 100644 --- a/lib/daemon.php +++ b/lib/daemon.php @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } @@ -48,6 +48,16 @@ class Daemon function background() { + /* + * This prefers to Starting PHP 5.4 (dotdeb), maybe earlier for some version/distrib + * seems MySQL connection using mysqli driver get lost when fork. + * Need to unset it so that child process recreate it. + * + * @todo FIXME cleaner way to do it ? + */ + global $_DB_DATAOBJECT; + unset($_DB_DATAOBJECT['CONNECTIONS']); + $pid = pcntl_fork(); if ($pid < 0) { // error common_log(LOG_ERR, "Could not fork."); @@ -114,19 +124,6 @@ class Daemon function changeUser() { - $username = common_config('daemon', 'user'); - - if ($username) { - $user_info = posix_getpwnam($username); - if (!$user_info) { - common_log(LOG_WARNING, - 'Ignoring unknown user for daemon: ' . $username); - } else { - common_log(LOG_INFO, "Setting user to " . $username); - posix_setuid($user_info['uid']); - } - } - $groupname = common_config('daemon', 'group'); if ($groupname) { @@ -139,6 +136,19 @@ class Daemon posix_setgid($group_info['gid']); } } + + $username = common_config('daemon', 'user'); + + if ($username) { + $user_info = posix_getpwnam($username); + if (!$user_info) { + common_log(LOG_WARNING, + 'Ignoring unknown user for daemon: ' . $username); + } else { + common_log(LOG_INFO, "Setting user to " . $username); + posix_setuid($user_info['uid']); + } + } } function runOnce()