わかりました、私はついにこれを理解しました。 /etc/security/limits.conf
で設定していた制限 適用されていましたが、グラフィカルログインには適用されていませんでした。これは、ターミナル ウィンドウから次のように確認できます。
$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535
さらに調査を重ねた結果、このバグ レポートにたどり着き、正しい方向に進むことができました。ログイン シェルで使用される制限を変更するには、次の行を /etc/systemd/user.conf
に追加する必要があります。 :
DefaultLimitNOFILE=65535
その変更は機能しますが、ソフト制限にのみ影響します。 (まだ 4096 のハード リミットが設定されたままです。) ハード リミットにも影響を与えるには、/etc/systemd/system.conf
を変更する必要があります。 同じ変更で。
/etc/pam.d
で行った変更 必要ありませんでした。少なくとも Ubuntu では、これは既に機能しています。また、root
の設定を変更する必要はありませんでした。 および *
limits.conf で。 mkasberg
の制限を変更する 少なくとも私のユースケースでは十分でした.
まとめ
ulimit -n
で示される制限を増やしたい場合 、次のことを行う必要があります:
-
/etc/systemd/user.conf
を修正 と/etc/systemd/system.conf
次の行を追加します (これにより、グラフィカル ログインが処理されます):DefaultLimitNOFILE=65535
-
/etc/security/limits.conf
を変更 次の行を追加します (これにより、非 GUI ログインが処理されます):mkasberg hard nofile 65535 mkasberg soft nofile 65535
-
変更を有効にするためにコンピュータを再起動してください。
/etc/security/limits.conf
を変更する必要はありません systemd を使用している場合は無視されます。
(ネットワーク上の別の質問に対する修正された回答を再現しています...)
デフォルトの /etc/systemd/system.conf
を編集したくない人のための代替手段 と /etc/systemd/user/conf
ファイル:
新しいファイル /etc/systemd/system.conf.d/limits.conf
を作成します これらの内容:
[Manager]
DefaultLimitNOFILE=65535
systemctl daemon-reexec
を実行 ルートとして
ログアウトして再度ログイン
ulimit -n
で新しい制限を確認してください .
systemd-system.conf
を参照してください 詳細はマンページをご覧ください。
TL;DRI は、答えを見つけやすくするために、答えを集中させる必要があると感じました。正しく機能するようにすべてのピースをまとめるのに何年もかかりました ...
考慮すべき場所が 2 つあります。
<オール>GUI セッション
$ grep DefaultLimitNOFILE /etc/systemd/system.conf
DefaultLimitNOFILE=65535
またはそれ以上:
$ grep NOFILE /etc/systemd/system.conf.d/limits.conf
DefaultLimitNOFILE=65535
シェル環境
$ grep nofile /etc/security/limits.conf
user soft nofile 65535
user hard nofile 65535`
またはそれ以上:
$ grep nofile /etc/security/limits.d/user.conf
user soft nofile 65535
user hard nofile 65535
上記のファイルの設定を変更した後、再起動します ulimit -n -Hn -Sn
で制限を確認します。