在 Odoo 中分析
Profiling in Odoo
我是 odoo 和代码分析的新手。我正在使用 py-spy 来分析我的 odoo 代码,因为我需要一个火焰图作为分析的输出。 py-spy 一切正常,但问题是,py-spy 需要通过在 运行 所在的终端上按 ctrl + C 或关闭来停止odoo 服务器关闭。我无法停止或重置 odoo 服务器,我也无法在服务器上执行 ** Ctrl + C**。
我曾尝试创建来做到这一点
启动 py-spy
def start_pyflame(self):
pyflame_started = self.return_py_spy_pid('py-spy')
error = False
if not pyflame_started:
self.start_pyflame()
else:
error = 'PyFlame Graph process already created. Use Stop button if needed.'
_logger.error(error)
工作正常,问题出在这个
def stop_pyflame_and_download_graph(self):
pyflame_running = self.return_py_spy_pid('py-spy')
if pyflame_running:
subprocess.run(["sudo", "pkill", "py-spy"])
现在的问题是当我用 pkill 终止进程或 kill 它终止了进程但同时它也终止了 py-spy,因此没有生成输出文件。
有什么方法可以停止或软杀死 py-spy 以便创建输出文件。
在此先感谢您的帮助
经过一些研究,我了解到所有这些kill命令只是杀死进程,而在这种情况下,我们需要停止进程。
这件事我通过
实现了
sudo kill -SIGINT <pid>
顾名思义,这个命令并不是killing/terminating进程,它只是通过一个中断信号让进程停止工作
这对我有用。
我是 odoo 和代码分析的新手。我正在使用 py-spy 来分析我的 odoo 代码,因为我需要一个火焰图作为分析的输出。 py-spy 一切正常,但问题是,py-spy 需要通过在 运行 所在的终端上按 ctrl + C 或关闭来停止odoo 服务器关闭。我无法停止或重置 odoo 服务器,我也无法在服务器上执行 ** Ctrl + C**。
我曾尝试创建来做到这一点 启动 py-spy
def start_pyflame(self):
pyflame_started = self.return_py_spy_pid('py-spy')
error = False
if not pyflame_started:
self.start_pyflame()
else:
error = 'PyFlame Graph process already created. Use Stop button if needed.'
_logger.error(error)
工作正常,问题出在这个
def stop_pyflame_and_download_graph(self):
pyflame_running = self.return_py_spy_pid('py-spy')
if pyflame_running:
subprocess.run(["sudo", "pkill", "py-spy"])
现在的问题是当我用 pkill 终止进程或 kill 它终止了进程但同时它也终止了 py-spy,因此没有生成输出文件。
有什么方法可以停止或软杀死 py-spy 以便创建输出文件。
在此先感谢您的帮助
经过一些研究,我了解到所有这些kill命令只是杀死进程,而在这种情况下,我们需要停止进程。
这件事我通过
实现了sudo kill -SIGINT <pid>
顾名思义,这个命令并不是killing/terminating进程,它只是通过一个中断信号让进程停止工作
这对我有用。