(C Linux)Изменение имени процесса

Модератор: Модераторы разделов

Аватара пользователя
SSDD
Сообщения: 157
ОС: linux

(C Linux)Изменение имени процесса

Сообщение SSDD »

Подскажите, плиз, как изменить имя процесса(отображаемое ps'ом)?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: (C Linux)Изменение имени процесса

Сообщение serzh-z »

В простейшем виде, в Linux, это делается так:

Код: Выделить всё

memset(argv[0], 0, strlen(argv[0]));
strcpy(argv[0], "test");
За размером данных, копируемых по адресу argv[0], разумеется, нужно следить - так чтобы эта строка не затёрла остальные (argv[1] и т.д.) аргументы командной строки (или предварительно их значения сохранять куда-то ещё).

Решение непереносимое (в BSD для этого есть соответствующая системная функция, в Windows подобное решение вообще не будет работать, ибо там имя процесса меняется ещё сложнее, через одно место, методом руткитов) и, как понятно, не самое безопасное.
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: (C Linux)Изменение имени процесса

Сообщение d_n_k »

http://kerneltrap.org/man/linux/man2/prctl.2
PR_SET_NAME

(Since Linux 2.6.9) Set the process name for the calling process to arg2.


sys-apps/prctl
все сказанное есть имхо...
Спасибо сказали:
Аватара пользователя
SSDD
Сообщения: 157
ОС: linux

Re: (C Linux)Изменение имени процесса

Сообщение SSDD »

2 serzh-z, чет как-то не помогло =\

2 d_n_k, сработало =)

Всем спасибо за внимание!
Спасибо сказали: