脚本 1:
#!/usr/bin/env python
import subprocess
subprocess.call(["ulimit", "-c"], shell=True)
输出-unlimited
脚本 2:
#!/usr/bin/env python
import subprocess
subprocess.call(["ulimit", "-c"], shell=True)
输出-0
我知道这是一个基本问题,请耐心回答
脚本 1:
#!/usr/bin/env python
import subprocess
subprocess.call(["ulimit", "-c"], shell=True)
输出-unlimited
脚本 2:
#!/usr/bin/env python
import subprocess
subprocess.call(["ulimit", "-c"], shell=True)
输出-0
我知道这是一个基本问题,请耐心回答
使用资源模块要容易得多,并且它允许resource.setrlimit
您的子进程根本无法执行,因为它的操作将是子进程的本地操作并且不会影响 Python 父进程。
>>> import resource
>>> resource.getrlimit(resource.RLIMIT_CORE)
(0L, -1L)
unlimited
和是不同的0
输出,具有不同的含义。
unlimited
是调用时的实际值ulimit
,如果查看手册页,0
是调用的结果,表示ulimit
执行成功。
In [1]: import subprocess
In [2]: subprocess.call(["ulimit", "-c"], shell=True)
unlimited
Out[2]: 0
如果您分配给一个变量,您可以看到结果是0
,但 unlimited 由您正在调用的进程输出到标准输出(而不是由调用返回)。
剧本是一样的。问题可能是当你打电话时
subprocess.call(["ulimit", "-c"], shell=True)
你得到2个输出。第一个是unlimited
,第二个是0
。
尝试将输出分配给变量:
output = subprocess.call(["ulimit", "-c"], shell=True)