Файл ядра Linux не создан

Список аргументов и окружение команды копируются в одно и то же место в памяти при запуске программы. Сообщение об ошибке: «Список аргументов слишком длинный», но на самом деле точная ошибка состоит в том, что список аргументов плюс среда слишком длинный.

Это происходит как часть системного вызова execve . Большинство, если не все варианты unix имеют ограничение на размер этого временного пространства. Причина этого ограничения состоит в том, чтобы избежать ошибок или вредоносной программы, заставляющей ядро ​​использовать огромный объем памяти за пределами собственного пространства памяти этой программы.

Стандарт POSIX указывает, что максимальный размер этого пространства памяти должен быть не менее ARG_MAX , и что минимальное значение этого ( _POSIX_ARG_MAX ) равно 4096. На практике большинство вариантов Unix допускают больше, но не 10 МБ. Вы можете проверить значение в вашей системе с помощью getconf ARG_MAX . В современных системах Linux максимальный размер составляет 2 МБ (с типичными настройками). Традиционно многие системы имели ограничение в 128 КБ. Linux также по-прежнему имеет ограничение 128 КБ для значения одного аргумента или определения переменной среды .

Если вам нужно передать более нескольких сотен байтов информации, передайте ее в файле.

1
07.07.2016, 10:12
1 ответ

Файл ядра ядра создается при панике ядра. То есть какой-то код в ядре идет не так (общие ошибки - это деление на 0 и выход индекса в массиве). Программа пользовательского пространства сгенерирует ядро ​​в том же состоянии. Однако не при любой перезагрузке генерируется ядро.

Если вы можете позволить себе перезагрузку хоста, вы можете попробовать

echo b > /proc/sysrq-trigger

, это перезагрузит хост в кратчайшие сроки, без каких-либо полезных комментариев к файлам журнала.

Узнать причину перезагрузки хоста - задача долгая и неопределенная. Начните с поиска файлов / var / log.

1
27.01.2020, 23:47

Теги

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