Sysctl.confは起動中に読み取られることになっているのはどの時点ですか?また、なぜ実行されないのでしょうか?再起動時に適用されない次の設定があります。
_net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-filter-pppoe-tagged = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0
fs.nfs.nlm_udpport = 32768
fs.nfs.nlm_tcpport = 32768
_
最初のセクションはKVMブリッジングに必要であり、2番目のセクションは既知のポートでNFSロックマネージャーを実行するためのものです。ただし、起動後、これらの値は有効になりません。_sysctl -p
_、そして彼らはそうします。
再起動せずにロックマネージャを再起動する方法がわからないことを除けば、これは大きな問題にはなりません。 sysctl.confが起動時に機能しない理由を本当に知りたいのですが、ロックマネージャーを再起動できるだけで解決します。
これはUbuntuサーバー10.04.2、カーネル2.6.32-31-serverにあります。一部のデーモンは構成ファイルのアクセス許可を確認し、許容範囲が広すぎると動作を拒否することを知っていますが、sysctl.confは644 root:rootであり、これがデフォルトであると確信しています。
一部のsysctlは起動時に無視されます を見てください。つまり、設定は、一部のカーネルモジュールがロードされる前に早期に適用されます。
Ubuntuでは、/ etc/init /procps.confファイルを実行するupstartデーモンの一部としてロードされます。
そこにあることと、無効にしていないことを確認してください。
Debianのようなものであれば、起動時のsysctl
は/etc/init.d/procps
によって実行されます。比較のために、私のデフォルトは次のようになります。
# /etc/init.d/procps: Set kernel variables from /etc/sysctl.conf
# Description: Loads kernel parameters that are specified in /etc/sysctl.conf
which sysctl > /dev/null || exit 0
for file in /etc/sysctl.conf /etc/sysctl.d/*.conf ; do
sysctl $quiet -p "$file"
そこにあるかどうか、ランレベルのinitシンボリックリンクが損なわれていないかどうかを確認する価値があるかもしれません。 (私のものはrcS.d
のみです。)これは機密性の高い設定ファイルではないため、644のアクセス許可は問題になりません。