Уведомления

Группа в Telegram: @pythonsu

#1 Июль 24, 2008 13:12:02

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена имени процесса.

Возможно ли?(FreeBSD)
Искал материалы по этой теме, но ничего реально работающего не нашёл.
Нужно что бы прога меняла имя своего процесса, виделась в ps -ax и килялась по killall.
Есть ли иные варианты чем импортить C'шные либы и прочие кастыли?

Использовал такой кусок(только частично рабочий):
libc = dl.open('/lib/libc.so.7')
libc.call('setproctitle', ‘mydaemon’)

При ps -ax выдаёт следующее:

11005 p0 S+ 0:00.03 python: mydaemon (python)

Соответственно по killall ничего не выыходит.

Слышал про реализацию по средствам exec*'ов, но что то не понял как его корректно использовать ((



Офлайн

#2 Июль 24, 2008 16:52:41

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена имени процесса.

http://code.google.com/p/procname/
это про линух… гдето есть история про то как чел докатился до этого…
есть истории про argv



Офлайн

#3 Июль 24, 2008 16:58:56

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена имени процесса.

http://code.google.com/p/procname/ - ужо скачал, но это линуховская приблуда. Пытаюсь пока её собрать.
А про argv слышал, но тоже не особо много ((((



Офлайн

#4 Июль 24, 2008 17:06:35

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена имени процесса.

насколько я понял - универсального решения вообще нету. под винду или линух еще более менее, про бсд придеться читать что нить для других языков и пытаться заюзать



Офлайн

#5 Июль 24, 2008 17:41:00

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Смена имени процесса.

def launchWithName(name):
if name and name != sys.argv[0]:
exe = os.path.realpath(sys.executable)
print 'Changing process name to ' + name, sys.argv
os.execv(exe, [name, sys.argv[0], 'name_changed']+sys.argv[1:])



Офлайн

#6 Июль 27, 2008 21:40:17

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Смена имени процесса.

Наткнулся на хабре. Может пригодится.

Офлайн

#7 Июль 28, 2008 10:39:48

Saff
От:
Зарегистрирован: 2008-03-18
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена имени процесса.

Пробовал вышеприведённый код, но ничего не вышло (((

os.execv(exe, [name, sys.argv, ‘name_changed’]+sys.argv)
Выдал:
OSError: Permission denied

Запускал от рута. Владелец файла root:wheel.

Пока ищу решение….

Хабру читал уже, там есть решение для FreeBSD, но я уже его пробовал. Оно плохо изменяет имя в ps -ax (((

procname так и не получилось собрать ((

В общем думаю дальше….



Отредактировано (Июль 28, 2008 10:40:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version