上下文:我在 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