红联Linux门户
Linux帮助

unix/linux给fork()出的子进程改名、重命名

发布时间:2016-09-29 09:33:45来源:linux网站作者:2郎神
问题描述:
在一个进程中,负责监听数据,然后派发给fork出来的子进程处理,系统需要为了显示、及后面kill时可以只杀对应子进程(一开始没对子进程id进行保存,也不想这么做),要对fork出来的进程重新命名。
案例:
父进程:AbmServer -HB -f1
子进程1:AbmServerSub -HB -l1
子进程2:AbmServerSub -HB -l2
子进程3:AbmServerSub -HB -l3
要在fork之后得到以上的效果。
 
解决:
方法有两种:
1、修改main函数的参数argv;
在父进程启动时备份一份这个参数(指针备份,还是指向运行参数地址,后面改变才会生效),然后再fork中对这个参数直接重名即可。
2、借助函数prctl
进程重命名代码:
prctl(PR_SET_NAME, “process_name”, NULL, NULL, NULL);
第一个参数是操作类型,指定PR_SET_NAME,即设置进程名
第二个参数是进程名字符串,长度至多16字节。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24571.html