Как я могу автоматически установить размер дампа ядра для одного пользователя?

Как программисту вам должно быть интересно, что делает вызов функции , а не , как это делается . Конечно, такие вещи могут интересовать. Но если конкретная функция вызывает (или может) вызывать системный вызов или нет, это очень сильно зависит от системы.

0
26.03.2018, 11:01
1 ответ

После небольшого исследования я, возможно, решил проблему. Как только я вхожу в систему UNIX, он перенаправляет меня в каталог homeв соответствии с выбранной оболочкой из доступных в системе из файла \etc\passwdследующим образом:

alandella:x:1000:100:alandella:/home/alandella:/bin/bash

Это объясняет отсутствие -интерактивной bashоболочки (консоли ). Оболочка, пусть это будет bashили tcsh, запускается, и следующие файлы считываются при входе/выходе:

~/.login  -> Executes cmds at login
~/.tcshrc ->               same as ~./bashrc in bash and ~./cshrc in csh
~/.logout ->               at logout

Итак, добавив следующие строки в файлы ~/.tcshrcи ~/.bashrc:

~/.bashrc -> ulimit -Sc X
~/.tcshrc -> limit coredumpsize X

, где X— это значение (кБ )или unlimited, и это должно помочь.

Иногда предлагается также отредактировать файл ~/.profile. Я не редактировал его, даже если МОЯ оболочка bashполучает его при входе в систему. Почему это не имеет значения? Потому что я всегда использую не -оболочку входа в систему, поскольку я дважды -щелкаю консоль, чтобы открыть терминал. Файл ~/.profileзагружается при запуске только в оболочке входа в систему (, обычно sh, которую я не использую ). У меня есть bash, который последовательно просматривает следующие файлы:

.bash_profile ->.bash_login ->.profile

в моем случае первые два файла не существуют, поэтому bashисточники .profile, если я использую оболочку входа.

ПРИМЕЧАНИЕ. Эта операция должна выполняться от имени пользователя root, и для того, чтобы этот трюк работал, должны быть соблюдены следующие условия:

  1. Что файл /etc/security/limits.confустанавливает подходящие жесткие/мягкие ограничения для пользователя и root. Если наложено жесткое ограничение на размер дампа ядра в 2000 КБ, то когда мы изменим ~/.bashrcна 3000 КБ, предел размера дампа ядра по-прежнему будет составлять 2000 КБ. Поискlimits.conf.

  2. Файлы под /etc/pam.dсодержат строку session required pam_limits.so, чтобы разрешить выполнение настроек /etc/security/limits.conf.

  3. Что файл /etc/sysctl.confсодержит kernel.core_pattern = core.%e.%p,это устанавливает формат сгенерированных файлов ядра, где %e — имя исполняемого файла, а %p — pid.

0
28.01.2020, 04:27

Теги

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