X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fdaemon.php;h=eaeecc10589531325cd2506fbd421300ad11a2f4;hb=fffacaa27c45db37196cfaac5b7e098c5afcf952;hp=4c2491e97bca284cb6234820b0749f4e61241517;hpb=b3b3af9a2eff10c272bb213eccd3dd3060bc5830;p=quix0rs-gnu-social.git diff --git a/lib/daemon.php b/lib/daemon.php index 4c2491e97b..eaeecc1058 100644 --- a/lib/daemon.php +++ b/lib/daemon.php @@ -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()