Зробіть ulimits роботу зі стартовим стопом-демон


20

У мене є init.dсценарій, який запускає додаток за допомогою start-stop-daemon --chuid SOME_SYSTEM_USER. Тобто додаток працює під іншим користувачем, а не root.

Проблема в тому, що додатку потрібні спеціальні обмеження (саме ulimit -n 64000), які я встановив limits.conf. Це працює дуже добре, коли я запускаю його безпосередньо з оболонки: su - SOME_SYSTEM_USER+ запустити додаток із оболонки.

Але при запуску через start-stop-daemon --chuidз /etc/init.dцих межі ігноруються. Тоді програма не працює, очевидно.

Як змусити start-stop-daemonшанувати ulimitналаштування?


Debian Squeeze, 2.6.32-5-686 # 1 SMP Сб 5 травня 01:33:08 UTC 2012 i686 GNU / Linux

Відповіді:


23

Наразі ви не можете. limits.conf(5)- це конфігурація для pam_limits(8), яка активується стеком PAM відповідно до конфігурації в /etc/pam.d. Однак, start-stop-daemon(8)запущений із сценарію init.d не проходить через стек PAM, тому такі параметри ніколи не застосовуються.

Помилка Debian №302079 містить патч, щоб увімкнути встановлення меж start-stop-daemon(8), але помилка відкрита з 2005 року та патч ще не об'єднано.

Хоча це не ідеально, AFAIK рекомендованим способом досягти цього зараз є додавання ulimitдзвінка у свій сценарій init.d.


Просто додайте ulimitналаштування прямо перед start-stop-daemonкомандою. (тобто ulimit -n 64000) ... для невігласів, як я.
Райан Шумахер

Якщо, на відміну від ОП, ви не знаєте, який зрив демон, я просто отримав хороші результати по перезапуску демонів Debian Wheezy після: echo "ulimit -c unlimited" | sudo tee /lib/lsb/init-functions.d/core-limit
Мартін Дорей

Більш цінну довідкову інформацію можна знайти тут: serverfault.com/a/642082/22394
1616

7

Ви також можете використовувати команду 'limit' у початковому сценарії.

У файл /etc/init/foo.conf додайте рядок:

limit nofile 64000 64000

Перша 64000 - це м'яка межа, а друга - жорстка межа.

Додаткову інформацію можна знайти тут: http://upstart.ubuntu.com/cookbook/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.