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

问题描述:

在一个进程中,负责监听数据,然后派发给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字节.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值