背景 linux操作系统 cpp程序添加了dnscache 逻辑(调用getaddrinfo()),想更换local-dns服务,更新重载后,抓包看程序并不生效,DNS查询还是之前的local-dns-server. 原因 根源在于每个进程都有自己的环境变量; 系统启动进程时,会拷贝当前系统的环境变量 fork()创建进程时,拷贝父进程环境变量; 解决方案 重启服务 慎重调用res_init()方法;