systemd一个坑

最近在centos7上用systemd进行管理启动进程,发现systemd启动的进程的limit都有问题。

open file都是4096,而不是在/etc/security/limits.conf 设置的数值。

于是看了下systemd本身的openfile, 这个确实都是对的。
然后我手动启动nginx的openfile都是根据limits.conf里设置的。  

看了下/etc/systemd/system.conf  里面确实可以单独设置openfile, 但是我直接修改system.conf里的值,再reload和restart都没有用,起来的nginx还是4096。

最后只能修改systemd的nginx配置文件。  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit] 
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
LimitNOFILE=999999
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target