捕获/诊断用户进程被终止 - 莫名其妙地自动注销

捕获/诊断用户进程被终止 - 莫名其妙地自动注销

上下文:我在 Mac OSX Yosemite 中使用 bash。

问题:我正在执行一个(python)脚本,我希望使用大量资源并需要几个小时才能运行,将 stdout 和 stderr 重定向到日志文件。

python script.py >> logfile.txt 2>&1

返回后,我发现我已自动注销并且工作尚未完成。此外,日志文件中没有任何错误的证据。看来用户进程正在被杀死,我很好奇如何捕获它,然后防止它发生。

进一步的相关细节是 python 脚本正在相当大的 mongodb 实例(约 400 万行)上执行许多数据库操作。

我怀疑这与设置有关ulimit。我的如下:

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited

相关内容