"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콜론 지정이 허용됩니다.

리소스 제한은 두 가지 형식으로 지정할 수 있습니다. 특정 소프트 제한과 하드 제한을 동일한 값으로 설정하는 단일 값 또는 두 제한을 개별적으로 설정하는 콜론으로 구분된 소프트:하드 쌍(예: "LimitAS=4G:16G) ") .

그러나 기본 제한이 있습니다 /etc/systemd/system.conf.

DefaultLimitCORE=infinity:infinity

우선순위가 높으므로 소프트 제한이 있으면 0유닛 파일에서 늘릴 수 없습니다.

관련 정보