Уважаемое сообщество, подскажите новичку, пока только набираюсь опыта в линукс.Вообщем проблема такая:
потребовался мне дамп памяти чтобы найти в нем вывод сдохшей программы,
вбил команду 'memdump > mem.dump &' и через какое-то время сервер перестал реагировать вообще на что-либо. ресетнул его и увидел что из 24гб в дамп попало только 500мб.
сначала подумал что ошибка памяти, но мемтест ошибок не нашел, загрузился с лайвсд antix19.1 и опять запустил memdump но дамп писал на флешку, результат тот-же, сервер завис.загрузил с лайвсд antix19.1 на домашнем компе и запустил memdump, и комп хоть и не завис полностью но после дампа в 766мб загружаются все ядра процессора и комп реагирует на нажатия кнопок клавиатуры с задержкой в минут 5 при этом фиксирует не все нажатия.
'nice -n19 memdump > mem.dump &' не помогло
'cpulimit -b -l 100 $(pidof memdump)' не помоглоmemdump игнорит все кроме 'kill -9 $(pidof memdump)'
насколько я понял с железом проблем нет, и либо это какой-то глюк ОС или memdump, либо я что-то не понимаю и косячу.
сервер на devuan_2.1_x64
нужно просто скинуть всю память в файл, что я делаю не так?
>потребовался мне дамп памяти чтобы найти в нем вывод сдохшей программы,а вы сильно новичок? ну, в плане, вы вообще хорошо представляете, как будете работать с тем, что получите?
>вбил команду 'memdump > mem.dump &'
и куда это он писал? Там в мане написано, что результат надо отсылать по сети
>вывод сдохшей программы,
именно вывод? с чего вы взяли, что он еще в памяти? может вам надо перенаправить stdout/stderr в файл?
если вас интересует причина вылета программы, то вам больше поможет core dump (но сначала посмотреть логи программы (если есть) или системы)
> а вы сильно новичок? ну, в плане, вы вообще хорошо представляете, как
> будете работать с тем, что получите?не могу адекватно оценить свой уровень, я пользователь самоучка, знаю чуть больше минимума чтобы просто пользоваться линуксом и делать что-то свое.
предполагал 'strings mem.dump > file' ,и затем искать в файле что там есть похожего на нужное мне например грепом.
> и куда это он писал? Там в мане написано, что результат надо
> отсылать по сетиа вот это я упустил... может в этом и косяк.
>>вывод сдохшей программы,
> именно вывод? с чего вы взяли, что он еще в памяти? может
> вам надо перенаправить stdout/stderr в файл?я предположил что он еще может быть там и не затерт, пишу обменник и ввиду усталости забыл удалить из скрипта строку с тестовым адресом, в итоге немного монеро ушло на адрес уже удаленного кошелька(создавался под проверку синтаксиса ответов от monero-wallet-rpc). кошелек создавался недавно(около часа до того как ушли монеты) и при создании он выдает в консоль сид фразу для восстановления. вот этот вывод я и хотел найти в памяти.
восстановить файл с диска при моем уровне знаний нереально, имя файла одинаково с тем что был создан на его месте, и помимо этого на диск пишется ооочень много всего в процессе работы.как перенеправить stdout\stderr мне известно, а вот как найти этот-же вывод уже отработавшей программы кроме shift+PgUp - нет.
> если вас интересует причина вылета программы, то вам больше поможет core dump
> (но сначала посмотреть логи программы (если есть) или системы)меня интересует как происхотит то что программа из официального репозитория установленная apt-get игнорирует заданные приоритеты, игнорирует все сигналы кроме 'kill -9', и имеет почти высший приоритет по прерываниям, если сервер после ее запуска вообще прекратил сетевую деятельность и не реагировал на нажатия клавиатуры...
хотелось бы понять почему так? я попробую запустить мемдамп с отсылкой результата по сети как сказано в мане, возможно моя ошибка была в записи в файл.
в любом случае спасибо за поддержку.
>>Добро пожаловать в мир линукс!
>>Я думаю вам нужно найти автора проги и обсудить это с ним. Или мантейнера. Вешать комп не должно
>>в любом случае, даже если у вас очень медленный дискблагодарю, как разберусь в чем проблема будет ясно мой косяк или стоит написать автору\или в devuan\antix например.
>меня интересует как происхотит то что программа из официального репозитория установленная apt-get игнорирует заданные приоритеты, игнорирует все сигналы кроме 'kill -9', и имеет почти высший приоритет по прерываниям, если сервер после ее запуска вообще прекратил сетевую деятельность и не реагировал на нажатия клавиатуры...видел похожую тему, но там фигурировало dd. Смысл был в том, что ядру может очень не понравиться то, что вы читаете определенные блоки памяти.
>при создании он выдает в консоль сид фразу для восстановления. вот этот вывод я и хотел найти в памяти.
>через какое-то время сервер перестал реагировать вообще на что-либо. ресетнул егопо идее в памяти уже ничего нет, т.к. при отключении питания она информацию не хранит.
Добро пожаловать в мир линукс!Я думаю вам нужно найти автора проги и обсудить это с ним. Или мантейнера. Вешать комп не должно в любом случае, даже если у вас очень медленный диск.
Да, если прога берет данные из /dev/mem, то после 4.16 доступ может быть ограничен и получить можно не все. Проверьте этот вариант.