首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否使用prctl PR_SET_NAME设置进程或线程的名称?

问是否使用prctl PR_SET_NAME设置进程或线程的名称?
EN

Stack Overflow用户
提问于 2015-05-26 16:13:29
回答 3查看 12.6K关注 0票数 7

我正在尝试使用prctl( PR_SET_NAME, "procname", 0, 0, 0)来设置进程的名称,当我阅读关于PR_SET_NAME的Linux手册时,如果我理解正确的话,它看起来像是设置了线程的名称。

prctl可以用来设置进程的名称吗?如何设置进程名称?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-11 02:33:38

可以,您可以在第一个参数中使用PR_SET_NAME,在第二个参数中使用名称来设置调用线程(或进程)的名称。如果成功,prctl将返回0。请记住,这取决于您在何处调用此prctl。如果您在进程内调用它,它将更改该进程的名称以及它所属的所有线程。如果您在特定线程内调用它,它将只更改该线程的名称。

示例:

代码语言:javascript
复制
int s;
s = prctl(PR_SET_NAME,"myProcess\0",NULL,NULL,NULL); // name: myProcess

现在,如果您在Linux中运行您的进程,请键入:

代码语言:javascript
复制
top

或

代码语言:javascript
复制
ps

来查看附加到您的进程id的名称。

票数 5
EN

Stack Overflow用户

发布于 2019-11-14 05:26:23

尝试以下代码:

代码语言:javascript
复制
const char *newName = "newname";
char *baseName;

// find application base name to correct
char *appName = const_cast<char *>(argv[0]);
if (((baseName = strrchr(appName, '/')) != NULL ||
   (baseName = strrchr(appName, '\\')) != NULL) && baseName[1]) {
   appName = baseName + 1;
}

// Important! set new application name inside existing memory block.
// we want to avoid argv[0] = newName; because we don't know
// how cmd line buffer will be released during application shutdown phase
// Note: new process name has equal or shorter length than current argv[0]
size_t appNameLen;
if ((appNameLen = strlen(appName)) != 0) {
    strncpy(appName, newName, appNameLen);
    appName[appNameLen] = 0;
}

// set new current thread name
if (prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(const_cast<char *>(newName)), NULL, NULL, NULL)) {
    Log::error("prctl(PR_SET_NAME, \"%s\") error - %s", newName, strerror(errno));
}
票数 1
EN

Stack Overflow用户

发布于 2018-03-10 02:38:49

为了设置进程名,您可以像使用prctl一样使用它,但它只会显示在/proc/pid/status (以及使用它的程序)中。ps和top查看其他地方,要更改ps和top中显示的进程名称,只需更改argv即可。

所以只需将其指定为argv=“newprocessname”即可;我会这样做的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30453048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档