加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux修改进程名

发布时间:2020-12-13 22:02:10 所属栏目:Linux 来源:网络整理
导读:一、linux中的进程名 ? ? linux中有很多查看/操作进程的命令。 ????这些命令的参数或显示的结果,有的是真实的进程名(top/pstree/pgrep/kill/killall),有的是进程的命令行参数(ps)。 ? ? 例如:有一个进程a.out,运行方式为:./a.out arg1 arg2 ????????? ?

一、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():

  1. #include?<sys/prctl.h>
  2. int?prctl(int?option,?unsigned long arg2,?unsigned long arg3,?unsigned long arg4,?unsigned long arg5);

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

  1. prctl(?PR_SET_NAME,?"procname",?0,?0);

三、修改命令行参数
? ? 修改命令行参数只需要单纯修改 char **argv中的字符串就可以达到效果。
????但是:在进程内存中,命令行参数存储地址的后面(更高的地址),存储了进程的环境表。为了保护整个进程的运行环境,必须在修改之前备份命令行参数及环境表。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读