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