Is it possible to programatically change an executable name (ucmd) of a unix process as reported by ps?
unix/POSIX way would be nice but Linux specific solution would suffice.
I want to change what is reported here
> ps -o ucmd
CMD
zsh
ps
not this, this I know ;)
> ps -o command
COMMAND
zsh
ps -o command
thanks
P.S. Not trying to create a rootkit, its just that net-snmp looks at this name when checking processes and my program has a different name when called from init and directly from /etc/init.d (etc/rcX.d/SNNname instead of just name).
You can do this with the PR_SET_NAME
function of prctl()
:
prctl(PR_SET_NAME, (unsigned long)"xyzzy", 0, 0, 0);
However, /etc/rcX.d/SNNname
should be a (symlink to a) script that starts your process, not a link to the process executable itself. This would also solve the problem.
来源:https://stackoverflow.com/questions/6841795/is-it-possible-to-programatically-change-an-executable-name-ucmd-of-a-unix-pro