什么“ulimit”值适用于“systemd”服务?

什么“ulimit”值适用于“systemd”服务?

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则不能在单位文件中增加......

相关内容