catalog

. 应用场景
. 通过Linux prctl修改进程名
. 通过修改进程argv[]修改进程名
. 通过bash exec命令修改一个进程的cmdline信息

1. 应用场景

. 标识父子进程名称,防止被误杀
. 构造假的进程名及参数,引导非法进入人员到蜜罐系统,取证
. 恶意程序、木马会通过"檫除"自己的进程名,使ps的时候显示的是一个无名字的进程,同时删除进程对应磁盘上的文件

Relevant Link:

http://blog.chinaunix.net/uid-29482215-id-4120748.html

2. 通过Linux prctl修改进程名

虽然Linux将所有资源对象都抽象为了文件,但是对一些特殊作用的文件特别定制了一些特别的API集合,对其进行特殊操作,prctl就是其中一个例子

prctl - operations on a process
#include <sys/prctl.h>
int prctl(int option, unsigned long arg2, unsigned long arg3,unsigned long arg4, unsigned long arg5);

prctl() is called with a first argument describing what to do (with values defined in <linux/prctl.h>), and further arguments with a significance depending on the first one. The first argument can be:

. PR_CAPBSET_READ
. PR_CAPBSET_DROP
. PR_SET_CHILD_SUBREAPER
. PR_GET_CHILD_SUBREAPER
. PR_SET_DUMPABLE
. PR_SET_ENDIAN
. PR_GET_ENDIAN
. PR_SET_FPEMU
. PR_GET_FPEMU
. PR_SET_FPEXC
. PR_GET_FPEXC
. PR_SET_KEEPCAPS
. PR_GET_KEEPCAPS
. PR_SET_NAME
) Set the name of the calling thread, using the value in the location pointed to by (char *) arg2.
) The name can be up to bytes long, including the terminating null byte. (If the length of the string, including the terminating null byte, exceeds bytes, the string is silently truncated.)
) This is the same attribute that can be set via pthread_setname_np and retrieved using pthread_getname_np.
) The attribute is likewise accessible via /proc/self/task/[tid]/comm, where tid is the name of the calling thread.
. PR_GET_NAME
. PR_SET_NO_NEW_PRIVS
. PR_GET_NO_NEW_PRIVS
. PR_SET_PDEATHSIG
. PR_GET_PDEATHSIG
. PR_SET_PTRACER
. PR_SET_SECCOMP
. PR_GET_SECCOMP
. PR_SET_SECUREBITS
. PR_GET_SECUREBITS
. PR_SET_THP_DISABLE
. PR_GET_THP_DISABLE
. PR_GET_TID_ADDRESS
. PR_SET_TIMERSLACK
. PR_GET_TIMERSLACK
. PR_SET_TIMING
. PR_GET_TIMING
. PR_TASK_PERF_EVENTS_DISABLE
. PR_TASK_PERF_EVENTS_ENABLE
. PR_SET_TSC
. PR_GET_TSC
. PR_SET_UNALIGN
. PR_GET_UNALIGN
. PR_MCE_KILL
. PR_MCE_KILL_GET
. PR_SET_MM
. PR_MPX_ENABLE_MANAGEMENT, PR_MPX_DISABLE_MANAGEMENT

0x1: Code Example

/*
gcc changetitle.c -o changetitle
*/
#include <stdio.h>
#include <sys/prctl.h> int main(int argc, char *argv[], char *envp[])
{
char *new_name = "littlehann-program"; getchar();
prctl(PR_SET_NAME, new_name);
getchar(); return ;
}

aaarticlea/png;base64,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" alt="" />

但是prctl修改的进程名,只能是16个字节(包括'\0'),同时,过ps -aux 查看,进程名称并没有改变,改变的只是/prco/$(PID)/stat和/prco/$(PID)/status的值,而/prco/$(PID)/cmdline并没有改变

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWoAAAAkCAIAAAAvn+ccAAAFxElEQVR4nO1c4ZGmIAy1LgpiZruhhK2CZijG+6FIQhJEcdX7vvfmZm6XRZJIeAmomX5/f39+fqbvgo9zRvRPKwMA/y2+kj4EXEizguu55TZBAHADQB8AAJwE6AMAgJMAfQAAcBKgDwAATuJB+siniDg3BID/Eyp9LAv7T5e1C2kRsP1Q/yGDPGWlOm3NKTjZmTX2I1/+t4xmWHT0enGljym4kB6lYx9vCgdMkO4MWnxaeioqupBkex5BuNOYmT4WHUyXEwvhjTDo41K9NZcOKU/JnsP7uPZ05Zqp3Fof5xRyzzwLp2a3zNcmchyadapFRyHHXURdOXfHuWjAoGOgglRnKPeWOMPSU7PKxxSq9pDMKDRuppD1eqZQ0UEfCz+m4HlSUl5hILdSNrJQO5OJjH7rnhtbwd+FlD2Dw0fZTjyGvGmx6albRKxex3QhzXNKIgRRK5niKTArDNv3LOrCAH2UWB1j3IiMW2RO3M7AZKHOKWxj8Bnu8yVNTymo1qDEEsovO2tVuXWNEFJLr/RkLyWGpK2F6NsqyYWw74pnM+4hdGYfPmb91tvq40zShxL0ZaOVfUS/rB/xV3UBWHxfX+2EX27rgS9XYRGTu/2sZzTe+zKkqy5hP9sBfDCCyVDZudjLxDgSXzWLjmYffMVVGXr5U58vGXoqggqoviz7qDc13KrsGLTdhRijfjhXSVf0zFasvy8XOJYkVaMaPi84pXJF271vQjd9pIr+6e/rtKmNU5M+ou+hDyvJX+ZLsSrfX/GSJ3XiekiDPkjOQhLj1oh0aGMFdm5bFkHRT5y9am2JfC0Xq0Y09FEsOkQfdWeucHUfd32pIbphArO9JAUptehjk0/byQrnhlTSVWVy4/qfjyk43nF/Nht68uxYd++b8CR9GLsVKzhUWIKKZRedObVDkz7UHDg30sSKjbL6BNPfcq+uQLEMuN6kSl1tg9mRfFj6qBYdoQ9xPzmRXUcf6pR2OYP5K1uA24CqwrX0R+njykO6czhJH9w5cn+1ka6Wkn81oq+YXWUTqx2TkxkvR2jNXTJXwIW8wS4/GfRBdvi160c+7p7tp8/MtDnKCd3OhWwfsebVqkWa8joUQmR7htYKNNxG0VMXpDpDpVqDeY12IshHbS9crjLvJ4thjoWnU5sXmQjf9qDLwD59uIqdnWxuN040j6Q98/7COGVdmrW4WidtZHalcPmY1LBIXp4bSgqwbSTWfmnbXGzCFFbjgk6cSSqQDlf2g21Q80vOoVukPxEV0Lx4eZbBBR3xJUtPZWer3U/lMLg+IdLSN9K5jNCQruhZssXl/HjbCNEz1bT8qcvn88nJPEtXVNz7Ttzx4NYAXhsbgU4fj2Sz+l5s7xTmMkF34Vnp78RTr40B52G9NvYmiMgNfCLwzQsAACcB+gAA4CRAH8BXY9b+AZ0AfQBfDUkWoI9+gD6ArwboYwSgj/cAT7IfAOhjBMfoo/mSm/wQ6AH0VUk4WtcDBVD+dFqfLIAC+hjBIfrY/c7rvrIF/Z9jtL557aePS+3SPwIiX502paEAioqTFQxAHyM4QB87ZQ6maZpCilGEO/n6sFW8gMTKsKUySkUD47VvJVQ2XxDXv/XXYjUKoHxsARTQxwj66WO/zAH9eGmvOoZevIDUepi379PUigb9OUVnz2bpBBRA+dgCKKCPEfTSR0+ZA+Obd/WDKLV4QRkye7ZZ0eBq+miXTkABlI8tgAL6GEEnfXSVOVDpw6gl0Ukf5q778uyjub1HAZSPLYAC+hiBpA9C8KSpp8yBRR9le9/KPniFBbqLbu/869oJ9mJr92ydLqIAyscWQAF9jKCHPvrKHJSgUAVRWUvCKl5AKizEsvB6H1SqpROO9LSfH6IAyscWQAF9jGB/8/JImYP+57K3AAVQ3o+TBVBAHyN411unJQ49XMOxAgqgvBojBVBAHyN4F30AwM3AF7cjAH0AAHASoA8AAM7hH1Lb710nSRaNAAAAAElFTkSuQmCC" alt="" />

Relevant Link:

http://man7.org/linux/man-pages/man2/prctl.2.html
http://blog.csdn.net/dahailantian1/article/details/5950824
http://www.cppblog.com/beautykingdom/archive/2009/11/08/100419.aspx

3. 通过修改进程argv[0]修改进程名

/*
gcc test.c -o test
*/
#include <stdio.h>
#include <string.h> extern char **environ;
int main(int argc , char *argv[])
{
int i; printf("argc:%d\n" , argc); for (i = ; i < argc; ++i)
{
printf("argv[%d](0x%x):%s\n" , i , (unsigned int)argv[i], argv[i]);
} printf("evriron=0x%x\n" , (unsigned int)environ[]); return ;
}

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQQAAABGCAIAAACljX2OAAAGS0lEQVR4nO2d25XrIAxFXRcFUQ/V0AzF+H7YGISOsBMmviY5e81HhmDeAplIsCyEEEIIIYQQQgh5HCGt67qua/T/uySEmGzD9KOD1IW0ZXB8aL/I+LgWyjdHcApORxaB18mPf1Y+jRrdBK7jHqpK42MKLqSxUvo48Yw3WvkG1Jgh5fF61tQ+7jFdeWYpEuPjmkKOmXvzrdYvYnhkOQ6qHazRR7DbFn6hA7cEBseDqOWgZA0L5svIDLdJIwUvFwyX1ZxVVrUJFNNgeXrLwskkexOzCykPeomPOrwShlKiUk5co6rWe5oupHVNKbXVrGspCp6CqIVR97MaLbmJ1jWFIw3ZSKo7qqUyxhic2fI58buEoZ6YjCKhPqpDY9oK0G/PD6Er72Mu6D6t+bhWU3uZkHWgtTJEv40G9a3RT3gObZ92SmKPAScHn6qRyPf4jFcb731J0jWPiM+9ufl0VfCxVKVqW1z4HNGFtJ6vuleEoQzRgbHXrrK6SEYflQdLH/z/lUGWDP2/lxAGLl1hiP6KMFjqxNbvoAJ54LqmP8V4apM0hKFaT3JedbIgxTppo/OuKUhS22uK0h9h/fDLK4OPKTi09l4EDn0ZYvZRtQ6UJ75WGAy9CLQW6gwfVywJdSK29t8VhtL9QBjqRU+kso9dUX7YeWcKUl1GWOJbhOEPlBLQ/LpIp29ozdLxOGGQ/ZTjw8C6MmXB68yMarEuMY+vQtK9UykS5a3afJXWXeBCPLSLCIZdJQzlzWdt5T/KdM/q3u3bTd6BACBJFkpU/Ybe5N7JF/V7XsDP2Cb4VmXVMg+KBPtIvvYBPaqt0ado5zakZ0BVAesPaB+03lo13rW3YDQ/tStr951eb2QaNdKP54Do5RpWqpOaEQD6VdX9+ozrYwqlrFvE88K3BermLoRKj/qizZ6hhcGah8CmONhsNvef8Z7657hnKeKPbmcMKOtvgYXhvY3mq6rg47nhRzdyStlZvKEjrB/dCCGEEEIIIYQQQgghD2PbzONeHvl5th+gbzc0IeQyylJ/MQ3oiw1/kJbGe/BuVV8lqwc+hYE8GGSpv2gD+spyc/NBWfJnYFVPYSAzYlvatbaYwsRcmXNehMJAnoppqU9hIL+GbakPvElqN/yiJiGreqpJZEaApf6pP0OMsfa9QEboWhikRwJFgnwH93viEfIsiivSTS5HhBBCCCGEEEIIIYQQ8nPo42fA2ZLdA0uQ7eA7P9jVloWQ+rxfKxAd+iTO4u5m1Mbcwv5mi3rqyxB+BHBadjmT0nViZkQnj92lcH44V//0xSKWVaGOj+KMQOOUWBVz+atRPPdlCI9iwJ8h4jsKcirqBFVwyi+MWUpRBYPHy6oi1hd8P0MKTs/t1VUIJX0UWAsgCHQyTGWEYu5ZacG2zLows1+G8CxG/RmujP7XYh4FqMsDHz9OqC9Dwj6ztjqZOAUnLHaLRgQDm5VBXEmhpE5nhGPmKKrqLwnD9JchPIohf4Y63pny86owNDe9WY/ru0rE9FYOMxYTcgpOzdG7jaJxqHBt0HicUlyO7vat6iQaB8XM0UfOJ/2CyxAexKA/wxZR31GwLMuwmmQLg3jcxzWlhDSSmnFhACURRSrLCRAGFPMo/fvC8A2XITyIYX+GBd5RsCfYvECDyxBgzCMXeRMCvEuhOjIeDseSWEltV3mcGKJFTdKBbTMcuUNhUBnhmGZhoZr0tZchPIpRf4Y9jd4MurTP966TMlO9cJdCpdYLFWB7yTEU/D1aSs1OgAhE2wxA07AywjqJ0XAXheFLLkOYnmuL6fUV98rW6jcyUMGvuQxhVl70Z7h058MrP7p9G394+TQhhBBCCCGEEEIIIWQ+XGM58Slm9mewbEcJeZ2p/RmWH7f6mQU1YYnZrpqMsZMDmq0NdwhsT7FZgZxPl1P7MzT2LVf7htyKYexu2Uu3Tg4ojhGzMe6vZOkwljkcChqit4o0jT8DV4bn0zF2h14KloaChKH1YpEmqEmpPCeazNT+DAuFYQJM/Rt7KdwgDBdWhvn8GRYKwwyYhpPQS+F9YZAjGOniJyvD1P4MC4VhDnqW7dW/2Mmh8SE/dHEdE/iXaoeE3q7pxP4MspX4Ak0IIYQQQgghhPwGK/oj5BehMBCyQ2EYB1lBkwn5RmH4B2F4TRmPqR/MAAAAAElFTkSuQmCC" alt="" />

通过代码运行结果可以看出,我们只需要在进程启动时修改argv[0]所指向的内存空间的内容,就可以修改进程名

. 如果新名称比argv[]的长度小,我们可以直接修改,并把多余的部分请0
. 如果新名称比argv[]长我们需要两步
) 申请新内存保存环境变量信息和argv[...argc-]参数信息
) 修改argv[],将新名称往后到environ的最后一项清0

0x1: Code Example

/*
gcc changetitle.c -o changetitle
*/
#include <unistd.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <sys/prctl.h> # define MAXLINE extern char **environ; static char **g_main_Argv = NULL; /* pointer to argument vector */
static char *g_main_LastArgv = NULL; /* end of argv */ void setproctitle_init(int argc, char **argv, char **envp)
{
int i; for (i = ; envp[i] != NULL; i++) // calc envp num
continue;
environ = (char **) malloc(sizeof (char *) * (i + )); // malloc envp pointer for (i = ; envp[i] != NULL; i++)
{
environ[i] = malloc(sizeof(char) * strlen(envp[i]));
strcpy(environ[i], envp[i]);
}
environ[i] = NULL; g_main_Argv = argv;
if (i > )
g_main_LastArgv = envp[i - ] + strlen(envp[i - ]);
else
g_main_LastArgv = argv[argc - ] + strlen(argv[argc - ]);
} void setproctitle(const char *fmt, ...)
{
char *p;
int i;
char buf[MAXLINE]; extern char **g_main_Argv;
extern char *g_main_LastArgv;
va_list ap;
p = buf; va_start(ap, fmt);
vsprintf(p, fmt, ap);
va_end(ap); i = strlen(buf); if (i > g_main_LastArgv - g_main_Argv[] - )
{
i = g_main_LastArgv - g_main_Argv[] - ;
buf[i] = '\0';
}
//修改argv[0]
(void) strcpy(g_main_Argv[], buf); p = &g_main_Argv[][i];
while (p < g_main_LastArgv)
*p++ = '\0';
g_main_Argv[] = NULL; //调用prctl
prctl(PR_SET_NAME,buf);
} int main(int argc, char *argv[])
{
char argv_buf[MAXLINE] = {}; // save argv paramters
int i; for( i = ; i < argc; i++)
{
strcat(argv_buf, argv[i]);
strcat(argv_buf, " ");
} //修改argv[0]所指向的内存空间的内容
setproctitle_init(argc, argv, environ); //调用prctl修改进程名
setproctitle("%s@%s %s", "littlehann-prog", "ip", argv_buf); for (i = ; environ[i] != NULL; i++)
free(environ[i]);
getchar(); return ;
}

aaarticlea/png;base64,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" alt="" />

Relevant Link:

http://blog.chinaunix.net/uid-29482215-id-4120748.html

4. 通过bash exec命令修改一个进程的cmdline信息

exec -l -a "littlehann-prog" bash
ps
ps -l

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjoAAACyCAIAAADEVvILAAAZ80lEQVR4nO2d2bWjOhBFHRcBEQ/RKBmCcX8waDolitH27b3XW+u5dUGlCRUSUOf1AgAAAAAAAAAAAAAAAPifGcb3+/1+v0P/6ZIAAMBPMjmSW91IN4yTgfVH+YeFPrwj8S9r8jh09cFZop/l9Hs9qFGjh9B1nFOr0vRhHLph/Opbimd67TWNzfc79H1IrJnWq5Hsx1mjrBw/iGzPmmF8v8fhsJVfbyXY4OLpSU13w7h4lK3JsA/zkV085xVngj6sQ7kPy7Dsw4HxGaeX1eR5VO1kjW7Bblv5hzpxyuDL3dXEE4WcR1gfqhsil3XZHTv76MAx34vdnuVxJ9zV69dbCdrkvTvd6o1Dny+6umUzLx1pdWK2lIhnTya6PMvWTWU3jHrIqqGcuKtYolhOXaOk1nOe3TC+3+M4ltVMa5kVfByyWhh136rRa2mi93sc1jzyRqq6I1luhhCGzmz5JfMr3ZVo5LhcyxZuqjtU4fdzeEqqerN56Di80rslw7oYybI79vSRbLphDKHaUahrJEeyNbxr9g1FOTPES2SIqx27PXPmNX7RSLrjYmoYx3hp160Ef4T6yu/D0tPz0qAP72R5FC++OtFaXYV+GqzVX42ZVI+z8uyuunLWoZy7h6pGmd31t16x9X0fs+yKU7LfrXvnzSsn3cZI2lYXfjmwG8a0F06sruL0KObSBKORp4K80pYzjtSF38nxO2jVm5dYLxPPrK7spnOOTzmS3RsS/qGoJoFkNji0szcbKa3raqY3TInRE/su8NUod5VfyPm/5ytOJr6a7ir0HndlzSPrhFiyDMqumHGzy6zM0nBX2YUQ7TZyTLM2JiPfzJhfW0VR0rOtKe/0ZmAfxqHb2IppNHJ98yCO9D8aK8/PGmE7F+N03Zs7udtdWY1cbwlYNZIjWSTqVnIPRTUJdEVNjrgrYd26DOsbLNlK8Ed4yF0Zu3/iIlcjbNrw3qiC/RSq6a42r+d4d5rvd4S+vimWM5TrmskvrafdVXsrsyim1cjvcUw2euSRF73JcTAXszcvsH7l6soomxi0Ro287krjHoqPuavNjsvWoLirv8u2u8p7fTleJqbjJq7PG6uLaksq26kvV/dpkdIHJ9GingzqEd4Ny1OT+MtwV0uWxdZVN4wh5Plu1b05yWaPoNMCK1+b3V+m73IU1ht2Vb8vi+AWupFXk4ltfaQu/E6OuyujN89bt2+8kibx9pHVdMpdqRqddVfeoagmgcRztO8yPdbn0aKrmT+1xl39D5TrA7X/Ilfi1r5K/dZ5uq1tvJWx7kJU9/jlfkW92SSe8Vqn6yfU2TZRWN8XiPPvdNw45usOMadUdXevWl59GIdY1unA7cLrB/zNRlb9vqZ4Vj9VI9dNt+6UNjvuwCvHrRrtOr/qzcPWzSLJzy+8fVQ13dqyr63xKUeyNbx1Nd1DcWNmCGGvw5ged9XXtuo4MbysVoI/wjPvffKZ8BZP3wlqd3Xha/3wq1w3FC/a+wWYeeAzYdgk3o8+0BHWZ8IAlwzFuOzh5gcAAAAAAAAAAAAAAAAAAAAA4C/Di+wAAHAK9K5u9aBGjR5C19F6kf0X9K4A4P/l4ulJxwzcjho+gd7VtdYnrhUQAQD4DOhdoXe1lnHTXRnl1MpDAABXgt4Velcvv96VUU6pPAQAcCXoXaF3lRjajBdnlFMpDwEAXAl6V+hd7Y0cL8sZi4FqAwDcAXpX6F0tWTn1rupyauUhAIArQe8KvauY4nFXdTk//Lo+APwfoHf1HfyK3hUKrQDwIdC7+gZ+Re/q0XICAAAAAAAAAAAAAAAAAAAAAAAAAADAf0z+tWkS5SH9AtU+UCDj+7US009+/+I71FbAw6qR54C364lTiPTq9HYbJd8TD2EcBpmnvzcBAL6GJNhBEcuhDpKeHGh+ctolYf5eSywfmZj++MPfqFp1n8gauQ/jKtGR/N4V7SkJ6P4eh87K09mbAABfQxqbJ59KbXflUT6U7qdKXMLQHRJi/C20Py7dVQhTwjCuP2d35Wvy6ggjz529CQDwcboshq1vdbWtHex1V5PDGsc/76y87mqSqO+yIH/LduCGT9F9YuS5szcBAD5OHs42/csz7qo29EfxuqtVJTFxV67VVcNd1XnirgDg13BrKd2yGagM/VHc7mpROS7clc+C2gxUebIZCAC/xiF35ZjfcFcFO9zVhHRX7YVQIZfVENvc2ZsAAB9GC5tvvsjeftSUHpvMiersJPUPT5my7mUjd5kSy3LKGELxInuz7Qu5LCPP6f123mQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+D4S3aNMrqL+LnQ6svhSVCamOTzyUW8ep32p0u0ftUpDfuufOn3WsjrKElYQAOBBhjXEeR/WKaxbQ/QkbmA6sojsIxOn9ONuan8c1SL40Fzmm0MGSUN+6x89/axm2P8RDQsAvpQ4haVzXeWf5EIqT/T5iekef13cRa8po/7EoEFhrMzlcaGyEHebxTiMNGRZn4pvqK7cfnrFLBZitnF6rmr5YQxhDdT0Z0NiAcBXki5pstVVuUm47a66Iazx67ZDBqaLu64qSjx0+WsihFv+qSrMrYsAaciy3vQ3t59e0SdS90nLT8HY0wFgtPwwvtdlHPuCAPAc3TDmDzPiA61x3O2uEi/UnszKJ06zJbkZqEPsioO/01192em65XNFsyRge9Xyjy1hAQAi0wrK+uuBzcDkdr29L5jPdG13tdINY3JWnf93bgZ+2enKXcUHX0a3JS2PuwKAp4m7Ooqu0vtzPbtK5rU+bGxJCccWT1+3n5LpNXVXueta0sKaT7j3VQthyLJe7+Y9eXpF1vJzJyd3CcmbMrrlcVcA8Czp7k+y2SMfueeHJs8wxHsR6eP5xoZWH8Yh5iDeRE8nTWFGbzWmpb/1LQBpyLBe+5snTy+YXnKpD023gN/xRqFs+TlpHB78ZAAA4JOcuzFXSysAAICLcS3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODP4de7Wg8tP0HtytgYpgjWXaB3tf90AIBfwq93FeNxl8EkpuAUaXBVLYLlBb2r+08HAPhdXHpX059TdzU5F6XQuOFz0Lt67PSq5KrlX81GBgD4Elx6V/N0ljurcXgp5+RYIqF39dDpFbrlG40MAPAV+PWu5j9WQhNH3ZVQXULv6v7TjZa3GhkA4BvYpXdVJGYR2fNMXO4KvavPnG60/ArhgwHg23DrXaUS6aF2b4c3A9G7+rje1dLyRiMDAHyePXpXtpZSfL99+rclglWB3tVDp1fIlteNDAAA6F19CiSAAQDcoHf1KWh5AAAAAAAAAAAAAAAAAAAAAAAAAAAA+Cz36V3d/6FuahC9q52nAwD8EvfpXRV57gC9q/tPBwD4XS7WuyryrEHvCr0rAIDdXK539dpeJqF39dDpFehdAcBvcofeVZVnDXpXnzodvSsA+EHu0Ltq5xmPQu/qM6ejdwUAv8YdelftPBPQu3ro9Ar0rgDgt7hD78rIU4He1UOnV6B3BQCwA/SuPgV6VwAAblBd+hS0PAAAAAAAAAAAAAAAAAAAAAAAAFyCFCUBAADwUkWuvZ5V2yKKXBR/WDC+VtUaWpYEl5Nn1KE++/2truOcqmMJ3xpr0WJPX/hF2qYjizxlYpoD6isA38rF05Oa7mI4p+047TF24DptSA0tW4LLW8zr1aGa4eTTGt2C3bbt2I9FBh9xVxMe036RtunIIk+ZOKXjpgC+nfzSne49x6HPF13OqD+GYNVkolAgad1Qm0ErVESGPNzduyynrlEdELYbxvd7HKtb7CoqVRZ3KtbCEuvaqNFraSIpQ2V0R7LCCCEMnS0VVla2lehxV7fKZe30lC6RNlfdEbQE+Anq67kPy3w9X8a5HlVc1NSJ1uoq9NN83ZT8SBL17FGe3VU+1QiAW9VIy23oFVvf9zHLrjgl+91a32zOh4YAmC58GuFxe+XqmbLd0R5vlMva5a5cIm2+undDCIGHqwBfj3JX+dya/3ueJmTiq+muQu9xV9ammamhtbiWMr5uNuM3pEZSd5VFKo92GzmmWRsOw7cNaMhQ1YW33NLpzcA+jEO3GVHwnFxW2UnbrsXMxifS5ql74oEP7SwDwDM85K6M3b/yaGPTzKXLZW/pOJWxhLtKF45ZLvO8lpVfOgxvNF5ThuoRd9XeynSVMxbjaAhdp7vaJdLmdFdmawPA97DtrvIZajleJkrBqtZWWDW5iIcQSkNLSnCZt8ZqUhXqUNpdJY/uSw8d8ny36r6pSS8nTeVrs63C9F2OwnrDrur3ZRHc4ka5LOerFj6RtlaejZukPrC6AvhWyvWB2qmRG2J6l0y9aJy+yG68lbHOetU9vqWhJd/+qF8bN2pUn74khD5fB6bbTPm6Q3jHtljXbgGw7cLvkArb3HmLe7Yt7pDLapUzY49IW35ocuujSpq8KYK3AvhWnnlxmc+Et3hahkq7q+29MOSyAOBDPPCZMGzy6M299ZmwAxYhAAAAAAAAAAAAAAAAAAAAAAAAAAAAcIbi28xWYJv0O8zxCh2MqC3Ux5+v4ivOqTx5MS96f1pneoN1ef5j1l/Zp8ND45sqYckyLsrpZhjf81fA3Va/S7a/DW+18b7mVGPe9zm0jNlffAi/dEf8qCD5vEBV02o6JzKiZisx/cj+d75asAKHVgNsDhy9njhJDVSnt2te9OYg87xnBvsPyUIYtD7/zASrrhEGMmI4qX8mxcxClZ8iz7QRsuisdWnoIetJNKZuvh53lTMLQrIVm9hbpHFM4lptx/fTJc3DX8lWkomNGhXIMe9VL+vL6FyrykvdHfHYrowwk1ez1XSbLHnP191kVCbmxf+xr8KtGk1kjZY2Z/J7V9S0sjeNPG+Zwf47kmi17QNvUBY85q6uC0GaZprnebF1aegZ67uOV0VK+r0cJCfc1bCW65i7GsbQ5+WRrSQTGzWqrDRjQbUvmUJ5p58XUjJHy11V1Ww1nRtZ6ypxqeDPBqjXnVu6qxCmhGFcf8797ovuUh1h5HnLDPbf4d9VkJswpzjqrraD2vlI8imyvNi6NPSI9X2HqyKtU3YamF6W000fEtmzI+4qvX+Wyi3LP2Rio0bCkDHmt+/eusXXjOM4dIZ4zozeYBTVbDWdG5+7mhzWuNVE34vPXQ3dGiczGfOuiU73ppHnLTPYf4d7dZWdcs0Q/gJ3le1l32ZdGnrE+m53VRUpFWcuDj85XU6z8AF3FSuVTOR73JVZo5bJPBiuS71smreGYZwnsIa7EqsrVc1W07nxuqvXU9FE78Hrrl6L1llxi7a5BGq4qzpP3NUVHGq4i9ay37QZmHPjZuDD1g9vBsbCxCfVxR/PTpfdMIb+gLuSL2Uc2AzcdduVeRS3etlkPz6B2rMZqKrZajo3uKv0kO71mtXC6x0FhwW1GajyZDPwCpzuKr9ErxrE8r0DacJ+0HOCQw7jiPXr3NUB64UyVqvnmu6qPvv8dJm9OeDMs5MTzo7ng40alYbUmHc/h1/eCptXreL01bxwV7qaraZzg7tKDxFv66R91J4gRW8aed4yg/1nOOXK822i6x5eJQUo3tbNbyr9ilFHTGcZ3mBdGnrMet53rdNFkdak9ZJ7zwLKVTndZA8Gkk02V55rXeaHOsvRg2ol1XRWjTba7Yh62St9m1CJtBVybGF9kX0MQVYzK8uhPfm09MnsqeqTpP7c5CprVA4wYyytbe/q46I3d41PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAK2h9LJkfNH31done1V6Wb+42P7ETnx6/4keC6enTkUWGMjHNoV33u6y7+mijTEeDIKxfVl6WZ9vShXnW3WFJD/m7QzfIWS4LxfkIeTyQOwbDSfxFkkeeqZF57okudpZnCVX4l4nBzRrcoHe1g9jRWwFM4ojoQxpQLsYXSGKyhb6OVSgSX2mEgiY3WXf2kcTfdJK1yGlc15N53lFOieqOJDZPHqDP2R2yQW7hsUCo+w0VYYou77iT+Iskj7ykRru0BbYT3Xn+ctwsB1Pj7HBXn6AIuOU7KQuwZsV5kxUvE4+M2uusu/tIcqjpIkb01VN5Su7IM0ELZBQN6ukOS5uqNJcu6bqoyJtqkhRHv9WC5cKwPVMMwyIMlWkoFjSUwQnzpdXNHXcEq0hTndLKyCMvqVF9l+Pq4ma/19FEl+OyGSaEMrEedd0wvt/jmO8YyUSjdmosrcO+zyWoU/OJ1OiSNLjXhEscT1do0drkU6TFc87a6WSSrW/KbbrtGaobQh7F7VHrO/pIcaDpMlS/n81TcUeeK9KzqDW0rzs8F0Jxi7P+c4rUrRZnwtDFzZDuFSWatspQKlpSbZSZY/hLbu2tIjXdVRrF+IIaecfS4dVVGoI5+R0fGqR3FWrUxY5NjpSJCmMszX9I9QfykRYDZa6t7d5XP6JM+olN9r0DaNqwTBLiM4ziwZvvhvrt7MN7rJ9Sjz157c2i7a9XHPKfdVd55FnPzVPVHUtqZcR571I3iLYa+nXopEHiraI/4q6yu3sRuD49Vt7iN8UTvtxdOY+8ZCje7a5K4+96lohLQznqStlPK1FX0xhL9VaUClHfFTVxuqtjobWf36PetTyf1jCOrMQ/ZWJ687BZ98utnwl//trZdBunLz9/aDPQ7A7Vkb7uEA2iLa/yjKs2VXqrVxXgCXeVNkXbXaXFyPYty2b7oc1A55F3bAbqxDOrK2MmEoU3Rp3XXWmMsXSru1rZuDLu0bvyE29pk5tbSfsFuu0dGJmYVL89Rd1ifSu9jb/pJEl948+Ted5RTkmjO+TF7rt3cbqrVx/CtJge1qc/+csd2+5qfT3kmqdX2Wa0EpxcDSX3zsamU1LM6zvuJFaR6s1AeeQlNdo5sSRdbPd7frre6dHuSo26s+5KL9TqK0vJ8GYz6r67cMeLuXfpXblxPjAo161xANSrk/zQZCO1SsxyaN+H3mPd1UfbpTrUb3JT6I4HmZfnaXTH6/WqL8Ud3bFLJG6RZ6zfo5+eaC++IaV4DHBhi0zvl4rSV4ayIiXzn/mNxcWD4SRGkWp3pY88VSPZm/u6uN0djV5aBNOG4t2OetTVKmvv0MtEs5r1WDLchNyKTGbU8CWLcgD4Hs5t1h3YtIE/y3Ubv499sAEAv4JngwDAwwVjKS4Nv2ZRDgAAAAAAAAAAAAAAAAAAAACHUCIaAAAAbvLwubegYhvmf1jQHygaX0zGr2cPvQr5jE6PUaOH0HWcU6vSLJGDPnlL4YrLeLmhx2XSzlWziDCqe/MT4T0B7uXi6UkHD/XILrxeeSSz9RKXOlLu4MFmMa/X6WkGt/6gQpIz2tMZpZK9RbJ4TKomNfS8TNr5anriTwL8NapQVG+vZkmdaOi1TCa6PMvW4sb8hF59TZ1HOKu+PtM1qoNrWXIvVRSlLCRSrEVbo2grKMA+CZlkNRBCmOP029avdleVdRlr6oBoU+4YzmrqqHLWhsoSPCCTVlovypkFehrGt7i+1rC5hvX64toe3nywCd9Pfe25NEt0oi3NMM3XTQGCJFFfOeXZXTVnGeE4qxppmQC9YlNqMVploLW+2ZwL/BIyyWqgS+7gz62uGiH2qhOVdanktHN1lc/w5zR1rHIKQ5G0vNnq6lKZtEoyqirnUov539MJSdXSpvEXSQzvrQi2AN+FclfbQeB14qvprkLvcVfWppkWLnrFa8/SgBE1Mt2VCEisNYqi4F7YnJ1924BuCRnLB5zeDOzDOHRb0cDsOopW2uWuyoNPaeq0TDeq8IBMWmG9qSIx/68P49DlB5YLNF+RyuHduGQAvpGH3JWx+9dQ68iL5NCRsrdfnDo9hjpZ3IhKcpnni6z81tTjuml1S8jc4q7cO3dWHWUr7XFXbemBC92VHCaPyaS5evMpd3Xlg1uAB9h2V/nEsRwvE7VeS2N1UU0E4oGBEi5KZoP4eLz5RCIvgFS10e4qeZpSToshz3er7s3J2y8hk+UZG8KrlGMm9mFZBDcR1q1WsotUIpz6OU2d7VZKa/SUTJq2brZndh+Wdk3VnAfdlX3JAHwj5fpAbQ1saJZs6LVkL7Ibb2VMyeoev9ywSK782nj92rhRo/p0S+5FaRStxoQXzQ353zfYISGTpecFalrf2NGKe7ZtlHWrlZyiTWrWPKupY5VT7D6rPhIvj5yWSduSjCp0i6bXI4Z1YzF9B2Mcc2WjrPYi0Rre4pIB+FqeeQWWz4S3eFo7XLurj+wO6f3SGxrks28T8C4DwEke+EwYNnlUjsj6TPibQJ8JAAAAAAAAAAAA/hRv9R8AAMB3UTsn3BUAAHwduCsA+NvwYcAfAXcFcJg75HOcylJ14M5fBP2wW3vwr+mH4a4ATuL6drgZ7uxYnn9AtufiKugYjNtR2CfQD7vW+sSVgiy4K4CTbMrn6OhCe1SXpNDOMIZQ3ePX4XCkeI9MNGp3WksprkSGYk2oQseiH9bozf9bPwx3BXASbxDPw6srQ2gnBhvdUpySqwH3EuGcllIuqlRE8lahYx156sSmIAv6YS1+RD8MdwWwTRnZc7eizxl3ZQntSF0PGcBUalMZCiC1oVNaSl1Rk213dYMgiyiKtm5tmlXyTrF46Ie10q/VD8NdAZzk9tWV8YRDuCtDS8nrrjSntJS+wl0Zu38NGYu8SOiHNa000q/VD8NdAZxkp6JPIr/jVV3Su3XaXcVnNvtXV5pzWkqZlJFnMxD9MPTDDHBXAEfxyucURzf1rozTq1eSV52fYuVQaylJ8R5T0UdW85yWUiJlFELDXaEfhn4Y7goATnCdlpLvZYfL4TPhLX5EPwx3BQANLtBSivfZ9c4SbuTz/Ix+GO4KAAB+ACKyAwAAAAAAAMC9/AMfyB08RkQJHwAAAABJRU5ErkJggg==" alt="" />

Relevant Link:

http://blog.ailms.me/2014/05/24/bash-exec-usage-example.html

Copyright (c) 2015 LittleHann All rights reserved

Linux下修改进程名称的更多相关文章

  1. Linux下的进程与线程(二)—— 信号

    Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...

  2. linux下监控进程需掌握的四个命令

    linux下监控进程需掌握的四个命令   在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的 ...

  3. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  4. Linux下php-fpm进程过多导致内存耗尽问题

    这篇文章主要介绍了解决Linux下php-fpm进程过多导致内存耗尽问题,需要的朋友可以参考下   最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是 ...

  5. linux下修改IP地址的方法

    linux下修改IP地址的方法 1.网卡的命名规则 在centos7中,en表示着:ethernet以太网,即现在所用的局域网,enX(X常见有以下3种类型) 2.IP地址的临时修改(重启后失效) 查 ...

  6. Linux下java进程CPU占用率高分析方法

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  7. linux下对进程按照内存使用情况进行排序

    linux下对进程按照内存使用情况进行排序的命令为:ps aux --sort -rss 详细解说参见 http://alvinalexander.com/linux/unix-linux-proce ...

  8. linux下查看进程占用端口和端口占用进程命令

    Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...

  9. 【修改端口号】linux下修改apache,nginx服务端口号

    一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找 ...

随机推荐

  1. android:ToolBar详解(手把手教程)(转)

    来源 http://blog.mosil.biz/2014/10/android-toolbar/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅 ...

  2. 前端见微知著番外篇:GIT舍我其谁?

    在上一篇中,我们讲到了利用纯UI的软件如何实现代码的提交.但是在MAC机器上,是没有turtoiseGit这类软件的,所以利用命令行的方式就是我们的首选了. 下面我们来描述两种主要的Git使用场景: ...

  3. JSON拾遗

    最近开始翻<JavaScript高级程序设计>,其实很多大师级人物都推荐这本书为JavaScript入门级读物.因为第20章 JSON篇幅最小,而且以前也写过一篇JSON的总结JSON简介 ...

  4. .Net分布式异常报警系统-服务端站点管理

    管理站点 对于管理站点, 并没有太复杂的内容, 主要就是对数据库表中的数据进行维护.  管理的实体有3个 WebSite(站点信息), WebService(站点服务器信息), ErrorEntity ...

  5. .Net分布式异常报警系统-简介

    系统简介 分布式异常报警系统就是收集系统运行过程中产生的未处理异常,检查系统运行的状态,并将异常信息统一发送到服务端,由服务端将信息通知到相关的责任人.  问题 我们在项目开发中可能遇到以下几个问题: ...

  6. MVC中使用Ajax提交数据 Jquery Ajax方法传值到action

    Jquery Ajax方法传值到action <script type="text/javascript"> $(document).ready(function(){ ...

  7. 如何实现侧边栏菜单之间的分割线——不用border-bottom

    相信大家都遇到过这样一个老生常谈的问题,就是如果当我们所要做的菜单是侧边栏,垂直方向自上而下的排列的菜单栏,我们在做的时候通常的构想是这样的,就是在每两个菜单之间添加分割线,通常的想法就是说给每个菜单 ...

  8. 常用数据库高可用和分区解决方案(2) — MongoDB篇

    MongoDB是当前比较流行的文档型数据库,其拥有易使用.易扩展.功能丰富.性能卓越等特性.MongoDB本身就拥有高可用及分区的解决方案,分别为副本集(Replica Set)和分片(shardin ...

  9. Sharepoint 杂记

    在Sharepoint中复制Settle.html,粘贴后改名为km.html,修改km.html会自动更新km.master,修改好模板后需要在站点发布. 添加List添加WebPart,继承KmW ...

  10. window配置nginx+php+mysql

    博客来源: http://www.cnblogs.com/wuzhenbo/p/3493518.html 启用nginx   D:\nginx>nginx.exe 重启 D:\nginx> ...