一、linux中的进程名

linux中有很多查看/操作进程的命令。

这些命令的参数或显示的结果,有的是真实的进程名(top/pstree/pgrep/kill/killall),有的是进程的命令行参数(ps)。

例如:有一个进程a.out,运行方式为:./a.out arg1 arg2

这时如果用ps查看出来的结果是:./a.out arg1 arg2,即argv的内容。

如果用top查看出来结果则是 a.out,kill/killall也必须以a.out为参数。

所以,在修改进程名时,也有两种方法:1 修改真实的进程名, 2 修改命令行参数,或者两种兼用。

二、修改真实的进程名

修改真实的进程名只需要用到函数prctl():

#include 

int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);

prctl()还有很多其它用处,这里就不多说了,以下是修改进程名的代码。

prctl( PR_SET_NAME, "procname", 0, 0);

三、修改命令行参数

修改命令行参数只需要单纯修改 char **argv中的字符串就可以达到效果。

但是:在进程内存中,命令行参数存储地址的后面(更高的地址),存储了进程的环境表。为了保护整个进程的运行环境,必须在修改之前备份命令行参数及环境表。

总结

以上是编程之家为你收集整理的linux修改进程名全部内容,希望文章能够帮你解决linux修改进程名所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐