Pyrasite.
Зачем он нужен? Я вижу сразу несколько кейсов:
Устанавливается достаточно тривиально с pip:
pip install pyrasite
У которых pyrasite сразу же не заводится - pytasite-shell висит и ничего не делает. Лечится все командой:
sudo echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Пользоваться очень просто. Для интерактивного подключения достаточно сделать pyrasite-shell <pid>
:
thenno@thenno-workbook:~/program/SimpleGopherServer$ pyrasite-shell 2907
Pyrasite Shell 2.0
Connected to '/usr/bin/python3 ./server.py'
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
(DistantInteractiveConsole)
На некоторых системах интерактивная консоль не работает даже после правки ptrace_scope и на них приходится работать в полуинтерактивном режиме:
ptrace <pid> <file>
.Так же можно проивзодить и замену кода: отправить на машинку измененные модули, а потом принудительно их переимпортировать, используя pyrasite. Можно даже все это автоматизировать, используя API. На самом деле, документация достаточно скудная, но в исходниках (кода там не так много) можно откопать подробности.
В комплекте еще идет GUI, необходимость в котором я так и не понял, и просмоторщик больших объектов в памяти процесса, который у меня не завелся.
Comments
comments powered by Disqus