「systemd」サービスにはどの「ulimit」値が適用されますか?

「systemd」サービスにはどの「ulimit」値が適用されますか?

systemdサービスをインストールしました。いくつかの問題が発生しています。ファイル記述子の問題かもしれないと思います。

ファイル記述子の制限systemd幅はかなり高いです。

$ cat /proc/sys/fs/file-max
378259

ただし、ソフト制限がデフォルトのようです。

$ ulimit -Hn
1048576

$ ulimit -Sn
1024

次のうち、私のsystemdサービスにはどのような制限がありますか?専用ユーザーで始まります。

[Unit]
Description=Myservice
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
WorkingDirectory=/home/app
Restart=always
RestartSec=1
User=app
ExecStart=<PATH>

ユーザーはapp一般ユーザー(/etc/passwd)です。

app:x:1002:1002:APP user:/home/app:/bin/sh

つまり、systemd私が実行しているサービスの制限をトリガーする特定の数字は何ですか?追加のfdを開くときにエラーを引き起こす特定の数字は何ですか?

答え1

LimitNOFILEコロン指定が許可されます。

リソース制限は2つの形式で指定できます。特定のソフト制限とハード制限を同じ値に設定する単一の値、または2つの制限を個別に設定するコロンで区切られたソフト:ハードペア(例:「LimitAS = 4G:16G)」。

ただし、基本的な制限があります/etc/systemd/system.conf

DefaultLimitCORE=infinity:infinity

優先順位が高いため、ソフト制限があると0ユニットファイルから増やすことはできません。

関連情報