zoukankan      html  css  js  c++  java
  • linux修改进程名

    一、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, 0);

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

  • 相关阅读:
    nginx实战
    apache定制错误页面
    openstack虚拟机获取不到ip
    ansible-galera集群部署(13)
    kubernetes监控(12)
    kubernets部署sock-shop微服务电商平台(11)
    用ConfigMap管理配置(10)
    k8s管理机密信息(9)
    shell编程(2)
    shell练习题集合
  • 原文地址:https://www.cnblogs.com/chengxuzhixin/p/4967170.html
Copyright © 2011-2022 走看看