Есть ли способ изменить основной формат имени файла для каждого сеанса, а не для всей машины?
В Linux единственный способ найти - использовать sysctl как root:
sudo /sbin/sysctl -w "kernel.core_pattern=core-%H-%N-%P"
На Solaris такая же проблема с рутом
coreadm -g core-%n-%f-%p
Но, к сожалению, обе эти команды навсегда изменяют систему для всех пользователей, чего я хочу избежать.
Я хочу иметь возможность поместить команду в свой .bashrc, и как пользователь, не являющийся пользователем Priv, мои основные файлы должны быть размещены и названы там, где я хочу.
РЕДАКТИРОВАТЬ:
Только что выяснилось, что в solaris это можно сделать с
coreadm -p core-%n-%f-%p $$
Кто-нибудь знает про Linux?
Насколько я могу судить, в Linux шаблон имени файла ядра - это глобальная настройка ядра.
Имя основного файла определяется format_corename
в fs/exec.c
. Он рассчитывается из corename
переменная, которая устанавливается только через kernel.core_pattern
sysctl.
Но, возможно, желаемое поведение может быть получено путем установки основного шаблона на |/path/to/foo %h %p
, что приводит к передаче содержимого основного файла в /path/to/foo
исполняемый файл. Обратите внимание, что за трубкой следует разбить на слова через пробелы.