Как сменить имя процесса в Python
Написал тут небольшой демон на Пайтоне и обнаружил, что «тушить» его через start-stop-daemon неудобно.
Start-stop-daemon — утилита для запуска и остановки демонов, обычно для останова ей передаётся параметр «stop» и ещё два параметр: имя файла, где записан PID процесса, который надо остановить и имя этого процесса. Утилита, прочитав PID, должна проконтролировать — действительно ли на данном PID работает процесс с заданным именем.
Засада в том, что демон на Пайтоне и имя процесса у меня — «python». Я в этом языке программирования пока новичок (программирую с сентября), возможно поэтому не нашёл в документации как это делается (Ваня, расскажи, если есть простой способ).
Я помню, что в Perl было очень просто — записал в переменную $0 имя и в списке процессов видно записанное значение. В Python запись в sys.arvg[0] ничего не даёт.
В общем, мой велосипед (только для Linux!):
import os.path, sys, ctypes
ctypes.CDLL('libc.so.6').prctl(15, os.path.basename(sys.argv[0]), 0, 0, 0)
Не все утилиты «увидят» новое имя, но для start-stop-daemon и killall этот способ работает.
Сотона!
Комментарий для ninjacolumbo.ya.ru:
А как ты пишешь, если ярушечку удалил? O_o