我是odoo和代码评测的新手。我正在使用py spy来评测我的odoo代码,因为我需要一个火焰图作为评测的输出。py spy一切正常,但问题是,需要通过在运行py spy的终端上按ctrl+C或关闭odoo服务器来停止py spy。我无法停止或重置odoo服务器,也无法在服务器上执行**Ctrl+C**。
我曾试图创造启动py间谍
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>
从名称中可以清楚地看出,这个命令并不是杀死/终止进程,它只是通过传递中断信号来要求进程停止工作。
这对我有效。