Saff
Июль 24, 2008 13:12:02
Возможно ли?(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*'ов, но что то не понял как его корректно использовать ((
cybergrind
Июль 24, 2008 16:52:41
http://code.google.com/p/procname/это про линух… гдето есть история про то как чел докатился до этого…
есть истории про argv
Saff
Июль 24, 2008 16:58:56
http://code.google.com/p/procname/ - ужо скачал, но это линуховская приблуда. Пытаюсь пока её собрать.
А про argv слышал, но тоже не особо много ((((
cybergrind
Июль 24, 2008 17:06:35
насколько я понял - универсального решения вообще нету. под винду или линух еще более менее, про бсд придеться читать что нить для других языков и пытаться заюзать
Ferroman
Июль 27, 2008 21:40:17
Наткнулся на хабре. Может пригодится.
Saff
Июль 28, 2008 10:39:48
Пробовал вышеприведённый код, но ничего не вышло (((
os.execv(exe, [name, sys.argv, ‘name_changed’]+sys.argv)
Выдал:
OSError: Permission denied
Запускал от рута. Владелец файла root:wheel.
Пока ищу решение….
Хабру читал уже, там есть решение для FreeBSD, но я уже его пробовал. Оно плохо изменяет имя в ps -ax (((
procname так и не получилось собрать ((
В общем думаю дальше….