Преглед на файлове

解决 hhvm 下的 notice

root преди 11 години
родител
ревизия
ce70f21f52
променени са 2 файла, в които са добавени 7 реда и са изтрити 4 реда
  1. 1 1
      workerman/Common/FileMonitor.php
  2. 6 3
      workerman/Core/Master.php

+ 1 - 1
workerman/Common/FileMonitor.php

@@ -86,7 +86,7 @@ class FileMonitor extends Man\Core\AbstractWorker
     {
         $msg_type = $message = null;
         $flag = $block ? 0 : MSG_IPC_NOWAIT;
-        if(msg_receive(\Man\Core\Master::getQueueId(), self::MSG_TYPE_FILE_MONITOR, $msg_type, 10000, $message, true, $flag))
+        if(@msg_receive(\Man\Core\Master::getQueueId(), self::MSG_TYPE_FILE_MONITOR, $msg_type, 10000, $message, true, $flag))
         {
             // 被排除的路径
             $exclude_path = array();

+ 6 - 3
workerman/Core/Master.php

@@ -806,10 +806,13 @@ class Master
     protected static function setProcUser($worker_user)
     {
         $user_info = posix_getpwnam($worker_user);
-        // 尝试设置gid uid
-        if(!posix_setgid($user_info['gid']) || !posix_setuid($user_info['uid']))
+        if($user_info['uid'] != posix_getuid() || $user_info['gid'] != posix_getgid())
         {
-            self::notice( 'Notice : Can not run woker as '.$worker_user." , You shuld be root\n", true);
+            // 尝试设置gid uid
+            if(!posix_setgid($user_info['gid']) || !posix_setuid($user_info['uid']))
+            {
+                self::notice( 'Notice : Can not run woker as '.$worker_user." , You shuld be root\n", true);
+            }
         }
     }