• 引擎国产化适配&重构笔记


    • 关于守护进程dup stderr问题;

     fd = open("/dev/null", O_RDWR);
     if (dup2(fd, STDIN_FILENO) == -1)
     if (dup2(fd, STDOUT_FILENO) == -1) 
        
    #if xxx
         if (dup2(fd, STDERR_FILENO) == -1)
    #else
        fd_log = open("pathlog", O_RDWR);
         if (dup2(fd_log, STDERR_FILENO) == -1)
    #endif
    
    if (fd > STDERR_FILENO) {
    }

    将dup2(fd_log, stderr)还是dup2(fd_null, stderr);

    也就是标准错误重定向到  黑洞还是 log文件中

    引擎注意事项: 

    • 进程名称
    • cpu绑定
    • 进程资源设置(file_limit  core_limit  signal_mask)
    • 时间戳的设置 (多进程/多线程 )volatile 防止优化  
    • 守护进程
    • 信号处理 以及 coredump处理
    • log设置
    • 参数处理
    • 进程唯一实例
    • 去掉root 特权
    • 进程间通信-socketpair  pipe  unix-socket 共享内存(mmap munmap以及shmget shmat shmctl) 共享内存blogpipe-unix blog

    网络中间件 :

     采用 libevent libuv 再次封装还是 结合自己业务再次编写?

    协议解析:

    打包问题:

    • fakeroot权限:使用fakeroot模拟root权限执行程序,在打包的时候,包里面的文件所有者必须是root。必须以root 权限来执行打包命令,但是应该避免在制作包的时候使用root权限。 为了解决这个矛盾,fakeroot被开发出来了。在fakeroot环境中,操作文件就像使用root操作文件一样,但是,实际上系统中文件的权限还是原来的权限。
    • LD_PRELOAD=//usr/userpath/x86build/lib/libfakeroot.so    python build_packet.py
  • 相关阅读:
    redis网络资料汇总
    Spring攻略学习笔记(3.01)在Spring中启用AspectJ注解支持
    [C/C++]福尔摩斯 ABCDE*?=EDCBA
    MyBatis测试范例
    使用TileMap制作游戏地图,在cocos2dx中使用(一)
    Tomcat7 catalina.out 日志分割
    MyBatis之User.xml
    基于 SIP webRTC 架构的系统部署模型分析
    第42周星期二
    第41周星期三小结
  • 原文地址:https://www.cnblogs.com/codestack/p/14084968.html
Copyright © 2020-2023  润新知