linux 下 修改fork出的子进程名称(附带python解决方案)


linux 下fork创建子进程,但是很多时候我们希望修改自己的子进程名称,可以使你的程序看起来更加个性化

linux c 下面是有proctl 可以解决这个问题的在fork创建的子进程里直接进行修改

 prctl(PR_SET_NAME,"PURE") 

直接搞定了,但是python 却在 os库和sys库里没有这个函数,百度说下一些第三方依赖库,我希望我的程序放在centos上可以直接跑,降低安装人员的学习成本,所以python下可以这么处理

import ctypes

libc = ctypes.CDLL('libc.so.6')

libc.prctl(15, 'pure')

这里写15其实就是 PRSETNAME 因为这里PRSETNAME 肯定是被c语言宏定义过,我去百度了PRSETNAME头文件,看到你了PRSETNAME值是15,都是c语言写的 所以我相信不会有太大差别,运行程序后,用lsof看自己进程监听的端口,发现名字变了,不再是python了

python  13751 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13752 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13753 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13754 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13755 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13756 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13757 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13758 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13759 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13760 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
pure    13761 root    3u  IPv4 37206750      0t0  TCP 192.168.1.10:d-fence (LISTEN)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值