Как «спячить» процесс в Linux, сохранив его память на диске и восстановив его позже? - PullRequest
90 голосов
/ 25 января 2010

Возможно ли «спящий» процесс в linux? Как и в «спящем режиме» на ноутбуке, я хотел бы записать всю память, используемую процессом, на диск, освободить оперативную память. А потом я могу «возобновить процесс», т.е. прочитать все данные из памяти и вернуть их в оперативную память, и я могу продолжить процесс?

Ответы [ 13 ]

0 голосов
/ 25 января 2010

Было некоторое исследование по контрольной точке / восстановлению для Linux в течение 2,2 и 2,4 дней, но оно никогда не проходило мимо прототипа. Это возможно (с оговорками, описанными в других ответах) для определенных значений возможных - я могу написать модуль ядра, чтобы сделать это, это возможно. Но для общей ценности возможного (могу ли я сделать это из оболочки в коммерческом дистрибутиве Linux), это пока невозможно.

0 голосов
/ 25 января 2010

Ctrl-Z увеличивает вероятность того, что страницы процесса будут заменены, но это не освобождает ресурсы процесса полностью. Проблема с полным освобождением ресурсов процесса заключается в том, что такие вещи, как файловые дескрипторы, сокеты - это ресурсы ядра, которые процесс использует, но не знает, как его сохранить самостоятельно. Таким образом, Ctrl-Z так же хорош, как он получает.

0 голосов
/ 25 января 2010

В Linux есть ctrl+z, но я не уверен, что он предлагает указанные вами функции. Я подозреваю, что вы задали этот вопрос, поскольку он не

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...