powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как восстановить работу процесса из дампа?
20 сообщений из 20, страница 1 из 1
Как восстановить работу процесса из дампа?
    #35445951
Feniksa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часто возникает вот такая задача:
---------------------------
1) остановить процесс: посылаем просто сигнал SIGSTOP
2) сделать дамп памяти в файл
3) убить процесс
-------------------------
4) востановить из файла процесс
5) послать сигнал SIGCONT
6) процесс продолжает свою работу
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35447009
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо, такое невозможно отдельно от всей ОС. Ибо что делать с открытыми сокетами, файлами, межпроцессным взаимодействием и т.п ?
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448335
Feniksa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если возможно востановить структуры ядра, которые отвечают за сокеты, файлы и т.д., то возможно
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448342
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FeniksaЕсли возможно востановить структуры ядра, которые отвечают за сокеты, файлы и т.д., то возможноа что толку их восстанавливать, если остальные процессы уже закрыли свои сокеты, стерли файлы, отмонтировали сетевые диски?
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448411
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, вам подойдет какая-либо из виртуальных машин, например, vmware?
Тогда можно будет под ваш процесс выделить отдельный экземпляр ОС и останавливать/запускать вместе с этим экземпляром ОС.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448416
Белый Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, проще в само приложение добавить возможность сохранять свое состояние, а потом его восстанавливать.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448507
Feniksa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftа что толку их восстанавливать, если остальные процессы уже закрыли свои сокеты, стерли файлы, отмонтировали сетевые диски?
В данном вопросе я с вами не согласен. Да, есть вероятность, что процесс или ресурс могут быть либо заняты либо вообще недоступны. Но межпроцессное взаимодействие отлично умеет обрабатывать такого рода ошибки. С другой стороны, если файл, к которому был открыт дескриптор, был удалён, то наш процесс коректно (как правило), обработает данную ошибку. Но это все крайности, так как изначально задача была в том, что все ресурсы будут доступны для правильного продолжения процесса.
miksoftМожет, вам подойдет какая-либо из виртуальных машин, например, vmware?
нет, это не рационально и глупо
Белый КотИМХО, проще в само приложение добавить возможность сохранять свое состояние, а потом его восстанавливать.
если бы была возможность переписать ВЕСЬ софт, то можно так сделать :-)
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448623
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
взять gdb, открыть им корку и посмотреть стек вызовов
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448645
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Feniksa miksoftа что толку их восстанавливать, если остальные процессы уже закрыли свои сокеты, стерли файлы, отмонтировали сетевые диски?
В данном вопросе я с вами не согласен. Да, есть вероятность, что процесс или ресурс могут быть либо заняты либо вообще недоступны. Но межпроцессное взаимодействие отлично умеет обрабатывать такого рода ошибки. С другой стороны, если файл, к которому был открыт дескриптор, был удалён, то наш процесс коректно (как правило), обработает данную ошибку. Но это все крайности, так как изначально задача была в том, что все ресурсы будут доступны для правильного продолжения процесса.Так дело не только в потенциальном исчезновении файлов или закрытии сокетов. Дело в том, что вы не сможете гарантировать неизменность всего окружения процесса в течение времени.
Например, к моменту возобновления работы вашего процесса другим процессам могут быть выданы ресурсы (те же сокеты) под теми номерами, которые использовались в вашем процессе. Как вы предполагаете разрешать такую коллизию?

Шанс, что не изменится ничего критичного, наверное, есть. Но гарантии-то нет.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35448651
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Feniksa miksoftМожет, вам подойдет какая-либо из виртуальных машин, например, vmware?нет, это не рационально и глупоИзложите всю задачу целиком, а не то, каким способом вы хотите ее решить. Тогда, возможно, у кого-то найдется решение, которое не покажется вам глупым. А пока мне кажется глупой постановка задачи.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35449081
Белый Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Feniksa miksoftМожет, вам подойдет какая-либо из виртуальных машин, например, vmware?
нет, это не рационально и глупо
Вот как раз вариант с виртуальной машиной - самый рациональный из предложенных. Запускаете на виртуалке всю Вашу инфраструктуру, а по необходимости "приостанавливаете" работу виртуальной машины.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35449089
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Белый Кот Feniksa miksoftМожет, вам подойдет какая-либо из виртуальных машин, например, vmware?
нет, это не рационально и глупо
Вот как раз вариант с виртуальной машиной - самый рациональный из предложенных. Запускаете на виртуалке всю Вашу инфраструктуру, а по необходимости "приостанавливаете" работу виртуальной машины.

гениально! и че с ней делать после остановки?
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35449292
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Умаксуман Белый Кот Feniksa miksoftМожет, вам подойдет какая-либо из виртуальных машин, например, vmware?
нет, это не рационально и глупо
Вот как раз вариант с виртуальной машиной - самый рациональный из предложенных. Запускаете на виртуалке всю Вашу инфраструктуру, а по необходимости "приостанавливаете" работу виртуальной машины.

гениально! и че с ней делать после остановки?

Продолжить выполнение с места остановки.
Мало того, VirtualBox допустим, позволяет делать снапшоты по ходу работы:)
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35449323
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft Feniksa miksoftМожет, вам подойдет какая-либо из виртуальных машин, например, vmware?нет, это не рационально и глупоИзложите всю задачу целиком, а не то, каким способом вы хотите ее решить. Тогда, возможно, у кого-то найдется решение, которое не покажется вам глупым. А пока мне кажется глупой постановка задачи.

+1
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35449347
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik_x
Продолжить выполнение с места остановки.
Мало того, VirtualBox допустим, позволяет делать снапшоты по ходу работы:)

Да это ежу понятно, что продолжить. а что за снапшоты?
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35450067
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Умаксуман nik_x
Продолжить выполнение с места остановки.
Мало того, VirtualBox допустим, позволяет делать снапшоты по ходу работы:)

Да это ежу понятно, что продолжить. а что за снапшоты?

With VirtualBox’s snapshots, you can save a particular state of a virtual machine for
later use. At any later time, you can revert to that state, even though you may have
changed the VM considerably since then.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35451120
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik_x Умаксуман nik_x
Продолжить выполнение с места остановки.
Мало того, VirtualBox допустим, позволяет делать снапшоты по ходу работы:)

Да это ежу понятно, что продолжить. а что за снапшоты?

With VirtualBox’s snapshots, you can save a particular state of a virtual machine for
later use. At any later time, you can revert to that state, even though you may have
changed the VM considerably since then.

А конкретнее? Он может показать стек вызовов? Или просто дает распечатку регистров?
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35453084
Proger89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У вас тут возникает такой страшный сырбор из-за простого вопроса.
Чтобы ответить на данный вопрос нужно сначала разобратся что из себя представляет процесс в ОС. Итак это:
1) Виртуальное адрестное пространство (таблица страниц и указатель на нее) + сами страницы, как храняшиеся в памяти, так и в свопе.
2) Структуры ядра такие как "структура пользователя" и структура в таблице ядра.
3) То что хранится описанных выше структурах машинные регистры, таблица дескрипторов файлов, параметры планирования и прочее.
В обшем из этого должно стать понятно, что не имея доступа к структурам ядра не возможно остановить процесс, а затем заново его запустить.
Кроме того даже если такое возможно необходимо что б и состояние системы оставалось прежним (иначе на данный способ будут наложены сушественные ограничения), например если данному процессу нужно взаимдействовать с породившим его процессом, то сушествует вероятность что когда процесс будет запушен заново, то породившего процесса уже может и не быть. Да и вообше сложно будет востановить (обновить) все таблицы ядра.
В обшем ИМХО я считаю, что то что хочет сделать Feniksa возможно, но очень уж геморойно как по мне. Хотя если разсматривается чисто теоретическая возможность, то это возможно.
Однако если нужно это реализовать на практике, то придется столкнутся с сильными ограничениями. Возможно (если процесс будет запускатся заново в ходе одного сеанса ОС), проше приостановить все потоки процесса и отправить все страничные блоки в своп.
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35453107
Feniksa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Proger89проше приостановить все потоки процесса и отправить все страничные блоки в своп.
Скорее всего я попробую реализовать данную функциональность. Хоть и существует вероятность того "что админ цепанёт ногой шнур сервака". Но предложеная вами идея решения данной проблемы мне кажеться самой оптимальной
...
Рейтинг: 0 / 0
Как восстановить работу процесса из дампа?
    #35453150
BISquid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
^Z
fg
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как восстановить работу процесса из дампа?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]