diff --git a/LFtid1056/main_thread.cpp b/LFtid1056/main_thread.cpp index ece39c3..61a31e1 100644 --- a/LFtid1056/main_thread.cpp +++ b/LFtid1056/main_thread.cpp @@ -36,6 +36,30 @@ thread_info_t thread_info[THREAD_CONNECTIONS]; // pthread_mutex_t global_lock = PTHREAD_MUTEX_INITIALIZER; // 全局互斥锁 extern SafeMessageQueue message_queue; +void init_daemon(void) +{ + int pid; + int i; + + if (pid = fork()) + exit(0); /** 是父进程,结束父进程 */ + else if (pid < 0) + exit(1); /** fork失败,退出 */ + + /** 是第一子进程,后台继续执行 */ + + setsid(); /** 第一子进程成为新的会话组长和进程组长并与控制终端分离 */ + + if (pid = fork()) + exit(0); /** 是第一子进程,结束第一子进程 */ + else if (pid < 0) + exit(1); /** fork失败,退出 */ + + chdir("/FeProject/bin/"); //multi process running at same time + umask(0); /** 重设文件创建掩码 */ + + return; +} // 生成测试装置 std::vector generate_test_devices(int count) { std::vector devices; @@ -240,7 +264,7 @@ int main(int argc ,char** argv) {// std::cerr << "process param error,exit" << std::endl; return 1; } - + //init_daemon(); srand(time(NULL)); // 初始化随机数种子 // 初始化线程数组