linux修改进程名
2024-08-23 10:15:04
一、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 <sys/prctl.h>
- int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);
prctl()还有很多其它用处,这里就不多说了,以下是修改进程名的代码。
- prctl( PR_SET_NAME, "procname", 0, 0, 0);
三、修改命令行参数
修改命令行参数只需要单纯修改 char **argv中的字符串就可以达到效果。
但是:在进程内存中,命令行参数存储地址的后面(更高的地址),存储了进程的环境表。为了保护整个进程的运行环境,必须在修改之前备份命令行参数及环境表。
最新文章
- C# 向listbox添加大量数据项的实践心得
- apk 反编译
- 接口自动化测试的";开胃小菜";---简单黑客攻击手段
- .net平台下获取高精度时间类
- spark mllib配置pom.xml错误 Multiple markers at this line Could not transfer artifact net.sf.opencsv:opencsv:jar:2.3 from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org
- 使用PopupWindow
- 【C51】74HC573芯片
- codeforces 442B B. Andrey and Problem(贪心)
- JAVA 注解的几大作用及使用方法详解【转】
- 线段树 Codeforces Round #197 (Div. 2) D. Xenia and Bit Operations
- java web sql注入测试(2)---实例测试
- javascript学习-原生javascript的小特效(原生javascript实现链式运动)
- [安卓][转]internal(com.android.internal)和hidden(@hide)APIs简介及在应用程序中的调用方法
- lucene索引合并与增量索引
- 老李分享:Python开发性能测试脚本
- 201521123006 《Java程序设计》第3周学习总结
- 注意:QQ影音视频压缩时长丢失
- DK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME
- UOJ#53. 【UR #4】追击圣诞老人 树链剖分 k短路
- BizTalk Map 累积连接字符串
热门文章
- spring ioc 源码分析(三)--finishBeanFactoryInitialization(beanFactory)
- 玩命学JVM(一)—认识JVM和字节码文件
- Python-临时文件文件模块-tempfile
- #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
- c++缓冲区std::wstringbuf
- 头文件afx.h作用
- Example Code for a TMP102 I2c Thermometer————Arduino
- 1个LED灯闪烁的Arduino控制
- servercat IOS Linux监控 SSH客户端
- 【LGR-070】洛谷 3 月月赛-官方题解