前言
这是一个小插曲。。在ngx_worker_process_cycle()函数里面有个ngx_setproctitle()用来修改worker进程名字。然后,发现里面的东西很有趣。。关键是里面内容以前我是不知道的,在此记录。
进程名称在哪儿
简单来说,该函数就是用来修改进程名字的。这里参考博文《Linux修改进程名称》,在此感谢博主。
Linux下用ps命令可以看到显示的进程名字。这个进程的名字会体现在它的main()函数的入参中...
main函数的原型:
int main(int argc , char *argv[]);
不多说,argc是表示命令行参数的个数;argv[]则用于以字符串形式存储所有的命令行参数内容。
OK,Linux中进程的名称就存储在argv[0]中。(这个之前真不了解,囧...)
然后,Linux还有个环境变量参数信息,表示进程执行需要的所有环境变量信息。它通过一个全局变量Char **environ;来访问环境变量。
重点来了:这个argv[]与environ两个变量所占的内存是连续的,并且是environ紧跟在argv[]后面。