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