diff --git a/core/sems.cpp b/core/sems.cpp index a8a81a91..c8d2c8a9 100644 --- a/core/sems.cpp +++ b/core/sems.cpp @@ -421,23 +421,23 @@ int main(int argc, char* argv[]) close(fd[1]); /* parent process => wait for result from child*/ for(int i=0;i<2;i++){ - INFO("waiting for child[%d] response\n", i); + DBG("waiting for child[%d] response\n", i); read(fd[0], &pid, sizeof(int)); if(pid<0){ ERROR("Child [%d] return an error: %d\n", i, pid); close(fd[0]); goto error; } - INFO("child [%d] pid:%d\n", i, pid); + DBG("child [%d] pid:%d\n", i, pid); } - INFO("all childs return OK. bye world!\n"); + DBG("all childs return OK. bye world!\n"); close(fd[0]); return 0; }else { /* child */ close(fd[0]); main_pid = getpid(); - INFO("hi world! I'm child [%d]\n", main_pid); + DBG("hi world! I'm child [%d]\n", main_pid); write(fd[1], &main_pid, sizeof(int)); } /* become session leader to drop the ctrl. terminal */ @@ -452,7 +452,7 @@ int main(int argc, char* argv[]) /*parent process => exit */ close(fd[1]); main_pid = getpid(); - INFO("I'm out. pid: %d", main_pid); + DBG("I'm out. pid: %d", main_pid); return 0; } @@ -518,9 +518,11 @@ int main(int argc, char* argv[]) sip_ctrl.load(); #ifndef DISABLE_DAEMON_MODE - INFO("hi world! I'm main child [%d]\n", main_pid); - write(fd[1], &main_pid, sizeof(int)); - close(fd[1]); + if(fd[1]) { + DBG("hi world! I'm main child [%d]\n", main_pid); + write(fd[1], &main_pid, sizeof(int)); + close(fd[1]); fd[1] = 0; + } #endif if(sip_ctrl.run() != -1) @@ -547,11 +549,11 @@ int main(int argc, char* argv[]) if (AmConfig::DaemonMode) { unlink(AmConfig::DaemonPidFile.c_str()); } - if (!(fcntl(fd[1], F_GETFL) == -1 && errno == EBADF)){ - main_pid = -1; - ERROR("send -1 to parent\n"); - write(fd[1], &main_pid, sizeof(int)); - close(fd[1]); + if(fd[1]){ + main_pid = -1; + DBG("send -1 to parent\n"); + write(fd[1], &main_pid, sizeof(int)); + close(fd[1]); } #endif