系统提供函数prctl():
#include <sys/prctl.h>
int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);
使用例子:
prctl(PR_SET_NAME, “process_name”, NULL, NULL, NULL);
不过这个函数更改的进程名字是并不能在ps等命令下看到的。在Nginx中为了给进程重命名,做法是修改程序参数argv[0]的内容,不过这有个问题就是argv[0]的长度可能比你想要修改的名字长度小,从而造成溢出。所以还需要重新分配空间。
static void copy_argv_envir(int argc,char* argv[]){
extern char **environ;
int i,size=0;
char* last=argv[argc-1