вторник, 11 сентября 2018 г.

Ubuntu 16.04 Включение автоматической генерации дампов 1c

Создание дампов аварийного завершения программы в ОС Linux
Элемент <dump>
Элемент <dump> определяет параметры дампа, создаваемого при аварийном завершении приложения. Чтобы отключить запись дампов, нужно в элементе <dump> установить значение параметра create = "0" или create = "false". Если элемент <dump> отсутствует, то для записи дампов будет использоваться каталог %USERPROFILE%\Local Settings\Application Data\1C\1cv8\dumps (для ОС Windows).
ВНИМАНИЕ! Для ОС Linux и macOS настройка формирования дампов выполняется средствами ОС. Поэтому элемент <dump> игнорируется. Подробнее о настройке формирования дампов в ОС Linux см. здесь, а для ОС macOS ‑ см. здесь.

Формирование дампов аварийного завершения настраивается для всех процессов, исполняемых от лица конкретного пользователя. Для того, чтобы включить автоматическую генерацию дампов, необходимо в файл /etc/security/limits.conf добавить следующие строки:
<username> soft core unlimited
<username> hard core unlimited
Где <username> ‑ это имя пользователя, от лица которого выполняется приложение системы «1С:Предприятие».

$ sudo nano  /etc/security/limits.conf

Добавить в конец:

usr1cv8 soft core unlimited
usr1cv8 hard core unlimited

Сохранить.

$ sudo mkdir /dumps
$ sudo chmod -R 777 /dumps

$ sudo nano /etc/sysctl.conf

Добавить

kernel.core_pattern=/dumps/core.%e.%p
Сохранить.

$ sudo sysctl -p /etc/sysctl.conf
$ sudo reboot


Проверим

$ ulimit -a
core file size          (blocks, -c) 0
......
$ sudo su - usr1cv8
usr1cv8@server:~$ ulimit -a
core file size          (blocks, -c) unlimited
......
$ bash
$ ps ax | grep bash
 3158 pts/0    Ss     0:00 -bash
10147 pts/0    S      0:00 bash
10595 pts/0    R+     0:00 grep --color=auto bash
$ kill -s SIGSEGV 10147
Ошибка сегментирования (сделан дамп памяти)

$ sudo mkdir /home/usr1cv8/dumps
$ sudo -u usr1cv8 mkdir /home/usr1cv8/dumps 
$ echo 'usr1cv8 soft core unlimited' | sudo tee -a /etc/security/limits.conf
$ echo 'usr1cv8 hard core unlimited' | sudo tee -a /etc/security/limits.conf
$ echo 'kernel.core_pattern=/home/usr1cv8/dumps/core.%e.%p ' | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p /etc/sysctl.conf

$ sudo su - usr1cv8
usr1cv8@server:~$ ulimit -a
core file size          (blocks, -c) unlimited

Комментариев нет:

Отправить комментарий