Чи є спосіб зробити знімок запущеного процесу на диск, щоб відновити його згодом?


11

Я зазвичай працюю з безліччю екземплярів візуальної студії, відкритих для різних проектів, мені було цікаво, чи є спосіб зробити знімок / сплячку запущеного процесу на диск, а не закривати його, щоб я міг відкрити його в тому ж стані, як це було швидко.

У мене є тонна вільного місця на диску, тому я б не проти зберегти весь знімок процесу, якщо це заощадить мені час на відкриття рішення та очікування завантаження проектів.


+1: Цікава ідея! (Звичайно, це саме те, що менеджер віртуальної пам’яті намагається зробити для вас автоматично, як і коли потрібно.)
Енді,

2
FWIW, щось подібне ("uneec" на основі основного дампа) традиційно є частиною процесу збирання Emacs для систем UNIX. Дивіться, наприклад, xemacs.org/Architecting-XEmacs/unexec.html
coneslayer

1
Це було розроблено спеціально для emacs? Цікаво, чи можна було написати версію загального призначення.
Енді

Я шукав щось подібне вже досить давно. Особливо це допоможе, якщо ви хочете призупинити кодер відео!
Прорив

1
Здається, що для Linux linux.org/apps/AppId_2488.html є щось подібне. Однак, я думаю, що проблема полягає у відкритих файлових файлах, мережевих сокетах тощо, які роблять це нетривіальною проблемою
Sijin

Відповіді:


2

Я роблю це, використовуючи VirtualBox від Sun для розділення проектів. Це також зручно, тому що ви можете робити знімки.

Недолік - вам потрібно помістити всю ОС там.


3
Так - я використовую VirtualBox для знімків рівня ОС, саме тут я отримав ідею про знімок рівня програми. Схоже, є щось подібне для Linux linux.org/apps/AppId_2488.html Однак я думаю, що проблема полягає у відкритих файлових ручках і таких, які роблять це нетривіальною проблемою.
Сіджін

0

ProcessExplorer від MS Sysinternals дозволяє призупинити процес. це допомагає / виконує роботу?


5
На жаль, ні ... Я хотів вийняти процес із пам'яті, щоб звільнити його, а не просто призупинити додаток. Хоча ця програма є дуже корисною програмою для інтенсивних процесорних додатків, яку, можливо, вам доведеться призупинити!
Прорив

Призупинення процесу ефективно заморожує всі інші процеси, що трапляються, щоб надсилати на нього деякі повідомлення з Windows. Так трапляється, що деякі процеси люблять надсилати повідомлення іншим процесам, а деякі процеси люблять бути цілями для таких трансляцій. Так, призупинення деяких процесів нешкідливо, але для інших випадків це заважатиме вашій роботі з комп’ютером. І ще одне. Деякі процеси після відновлення після тривалого призупинення заморозять і зажадають весь ваш процесор, щоб компенсувати весь втрачений час, обчислюючи щось дуже розумне: P
Roland Pihlakas,

Існує також утиліта командного рядка pssuspend від MS Sysinternals. Ви можете знайти його там: technet.microsoft.com/en-us/sysinternals/bb897540 . Він є частиною пакету PsTools: technet.microsoft.com/en-us/sysinternals/bb896649, де ви також можете знайти, наприклад, інструмент pskill , який, наприклад, досить зручний після відновлення процесу, і, можливо , надто схвильований .
Roland Pihlakas

1
@ Продовження, але якщо процес буде призупинено, він видасть пам'ять (оскільки інші програми використовують пам'ять, вони змусять цю сторінку випустити на екран, не намагаючись повернути її, поки не відновите її. Це дійсно найближчий / найбезпечніший спосіб отримати те, що ви хочете - поміняна призупинена програма в основному - це безпечно зберігається знімок її, лише той, який втрачається при перезавантаженні.
бінкі

-1

Ви можете використовувати WinDbg (інструмент Microsoft) для створення дампа поточного стану машини Windows. Зазвичай це використовується для аналізу проблем, але, можливо, воно може послужити і вашим потребам. Шукайте ключові слова WinDbg та dump для отримання додаткової інформації, можливо, є навіть можливість скинути лише окремі процеси.


Файл дампа не можна використовувати для відновлення процесу.
користувач2284570
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.