Не обман: Это не дубликат этот вопрос. Я уже разбирался в этом вопросе. Это помогает поднять лимит на worker processes
, но nginx master process
продолжает сохранять 1024
и 4096
соответственно. Последний нюанс и есть суть вопроса.
Эта проблема:
Я увеличиваю лимит файлового дескриптора для nginx в systemd
следующим образом:
1) Создать limit.conf
в /etc/systemd/system/nginx.service.d/
2) Сохраните следующие строки в этом файле
[Service]
LimitNOFILE=100000
3) Перезагрузите nginx через sudo service nginx restart
Теперь, когда я это сделаю cat /proc/$(ps aux | grep "nginx: master process" | grep -v grep | awk '{print $2}')/limits | grep "Max open files"
Я вижу, что этот лимит установлен правильно.
Однако есть загвоздка!
Если я перезагружу систему, а затем снова вхожу в нее, по умолчанию для nginx master process
вернулся к 1024
и 4096
(Я запускаю вышеупомянутый cat
команду, чтобы узнать).
Но если я выдам sudo service nginx start
, предел снова увеличивается по желанию.
Как убедиться, что этот параметр не теряется при перезагрузке? Был бы признателен за наглядный пример. Я не хочу вручную выдавать sudo service nginx restart
каждый раз.
p.s. Я внес дополнительные изменения в /etc/security/limits.conf
и /etc/pam.d/common-session
также. Если вам понадобится дополнительная информация, спросите меня.
Более того, /etc/systemd/system/multi-user.target.wants/nginx.service
содержит:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Но это 14.04
, так что это не сработало бы. Как лучше всего добиться этого в Ubuntu 14.04? Хотел бы наглядный пример, который действительно работает.