使用 时,是否可以在正在运行的代码中mpirun
捕获信号(例如,由 生成的 SIGINT )?^C
例如,我正在运行一个并行化的 python 代码。我可以在自己except KeyboardInterrupt
运行时捕获这些错误python blah.py
,但在执行mpirun -np 1 python blah.py
.
有人有建议吗?即使找到如何在 C 或 C++ 编译程序中捕获信号也是一个有益的开始。
如果我向生成的 Python 进程发送信号,它们可以正确处理信号;但是,发送到父orterun
进程的信号(即来自集群上超过挂墙时间,或在终端中按 control-C)将立即杀死所有内容。