zoukankan      html  css  js  c++  java
  • 引擎国产化适配&重构笔记

    • 关于守护进程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
  • 相关阅读:
    类的加载机制与反射 笔记
    json
    人人都是产品经理 笔记
    java IO
    jcrop+jquery+javaweb 实现头像裁剪、上传
    C++学习-3
    C++学习-2
    C++学习-1
    Django高级部分
    Django---模板
  • 原文地址:https://www.cnblogs.com/codestack/p/14084968.html
Copyright © 2011-2022 走看看