Что-то очень запутанное происходит в отношении моей коробки.
Ниже приведены мои настройки в /etc/sysctl.conf:
kernel.core_pattern = core
kernel.core_uses_pid = 1
В /etc/profile меня есть это:
ulimit -S -c unlimited >/dev/null 2>1
И я проверяю все, посмотрев на:
cat /proc/sys/kernel/core_pattern
cat /proc/sys/kernel/core_uses_pid
Итак, когда мы делаем ulimit -c , он возвращает значение unlimited .
когда мы делаем ulimit -S -c , он возвращает значение unlimited .
когда мы делаем ulimit -H -c , он возвращает значение unlimited .
И когда я запускаю kill -6 против запущенного процесса, я не получаю ядро.
Когда я запускаю ulimit -c unlimited , запускаю процесс снова и запускаю kill -6 , он генерирует ядро.
Может кто-нибудь объяснить, в чем разница между мягким лимитом и жестким лимитом?
И должны ли мы вообще менять жесткий предел?
Мне не нравится эта ситуация, потому что ядра иногда генерируются, а иногда нет.
Даже если я изменю limit.conf, мне бы очень хотелось понять, что я делаю.
Еще несколько вещей, которые мне нужно раскрыть, это то, что я работаю в среде RHEL 6 (x86_64).
И что на диске достаточно места, и это не процесс DAEMON или программа setuid. И в папке достаточно разрешений для создания новых файлов, и в каталоге времени выполнения нет файлов / папок с именем core.
