Почему изменения в / etc / limit не работают во встроенной системе

2529
AMIT

Я пытаюсь обеспечить поддержку дампа ядра для моей цели на основе ARM. Я читал об обоих /etc/limitsи /etc/security/limits.conf. В моей целевой файловой системе нет последней. Поэтому я сделал ниже изменения в/etc/limits

root C100000 

После добавления этой строки /etc/limitsожидал генерации файла ядра, но ulimit -aпоказывает мне

core file size (blocks, -c) 0 

Почему эти изменения /etc/limitsне отражаются вообще.

И что мне теперь делать?

Нужно ли добавлять /etc/security/limits.confв мою файловую систему?

Я не смотрю на вариант использования setrlimit().

1
Почему вы не можете использовать `ulimit -c unlimited` или аналогичный вариант команды` ulimit` для включения дампов ядра? sawdust 10 лет назад 0
`/ etc / security / limit.conf` читается PAM, а` / etc / limit` читается набором теневого входа в систему; оба относятся к вошедшим в систему пользователям и устанавливаются в большинстве не встроенных систем. Нет смысла создавать файлы конфигурации для программного обеспечения, которого нет. Ваш пользователь BusyBox? Или что-то другое? Gilles 10 лет назад 0
@ Жиль, наши / etc / limit определенно исходят из пакета Shadow, я не уверен, что мой пользователь - Busybox или что-то еще, я проверяю это ?? AMIT 10 лет назад 0

2 ответа на вопрос

0
scai

Depending on your system you might also have to edit /etc/pam.d/common-session* and add

session required pam_limits.so 

And of course you have to start a new session for your changes to apply.

У меня нет файловой системы pam.d AMIT 10 лет назад 0
Тогда я думаю, что в урезанной системе вам, возможно, придется вернуться к `setrlimit ()`. scai 10 лет назад 0
0
Sepahrad Salour

For creating core dump add following command to /etc/profile

ulimit -c 10000

This command set the size limit of core files to 10000 bytes (You can change it to unlimited). Then execute /etc/profile/ again with source /etc/profile or . /etc/profile

Мы не можем добавить файл / etc / profile, так как если мы изменим / etc / profille, это повлияет только на программу, запущенную из оболочки входа в систему, а не на процессы / службы, запущенные systemd. / etc / limit будет правильным расположением для настроек по умолчанию AMIT 10 лет назад 1

Похожие вопросы