我可以/etc/sysctl.conf
通过添加一个[dummy]
部分并覆盖 ConfigParser 的read()
方法来使用 Python 的 ConfigParser 库进行读取,如下所示:
class SysctlConfigParser(ConfigParser.ConfigParser):
def read(self, fn):
text = open(fn).read()
contents = StringIO.StringIO("[dummy]\n" + text)
self.readfp(contents, fn)
现在棘手的部分是写回我的 python 程序所做的配置更新,因为如果我现在ConfigParser.write()
直接调用,那么它也会添加回这一[dummy]
部分:
[dummy]
net.netfilter.nf_conntrack_max = 313
net.netfilter.nf_conntrack_expect_max = 640
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 5
以下是我的问题:
- 有没有一种优雅的方法可以让 ConfigParser 不添加这个 [dummy] 部分?如果我不得不再次打开这个文件只是为了删除包含这个虚拟部分的第一行,这似乎很奇怪。
- 也许 ConfigParser 不是编辑 sysctl.conf 的正确工具?如果是这样,是否有任何其他 Python 库允许从 Python 以方便的方式更新 sysctl.conf?