¿Hay alguna manera de capturar un proceso en ejecución en el disco para restaurarlo más tarde?

11

Por lo general, trabajo con muchas instancias de Visual Studio abiertas a diferentes proyectos, me preguntaba si hay una manera de capturar / hibernar un proceso en ejecución en el disco en lugar de cerrarlo para que pueda abrirlo en el mismo estado en que estaba con rapidez.

Tengo una tonelada de espacio libre en el disco, así que no me importaría guardar toda la instantánea del proceso si me ahorrara el tiempo de abrir la solución y esperar a que se carguen los proyectos.

Sijin
fuente
+1: ¡idea interesante! (Por supuesto, esto es exactamente lo que el administrador de memoria virtual está intentando hacer por usted automáticamente cuando sea necesario).
Andy
2
FWIW, algo como esto ("unexec", basado en un volcado de núcleo) es tradicionalmente parte del proceso de construcción para Emacs en sistemas UNIX. Ver, por ejemplo, xemacs.org/Architecting-XEmacs/unexec.html
coneslayer
1
Que fue diseñado específicamente para emacs no? Me pregunto si se podría escribir una versión de propósito general.
Andy
He estado buscando algo como esto desde hace bastante tiempo. ¡Sería especialmente útil si quisieras pausar un codificador de video!
Avance
1
Parece que hay algo como esto para Linux linux.org/apps/AppId_2488.html Sin embargo creo que el problema va a ser manipuladores de archivos abiertos, conexiones de red, etc., que hacen de este un problema no trivial
Sijín

Respuestas:

2

Hago esto usando VirtualBox de Sun para separar proyectos. También es útil porque puedes tomar instantáneas.

El inconveniente es que necesitas poner un sistema operativo completo allí.

Incógnito
fuente
3
Sí, uso VirtualBox para instantáneas de nivel de sistema operativo, de ahí surgió la idea de una instantánea de nivel de aplicación. Parece que hay algo como esto para Linux linux.org/apps/AppId_2488.html Sin embargo, creo que el problema serán los identificadores de archivos abiertos y demás , lo que hace que este sea un problema no trivial.
Sijin
0

ProcessExplorer de MS Sysinternals le permite suspender un proceso. ¿esto ayuda / hace el trabajo?


fuente
55
Desafortunadamente no ... Quería eliminar el proceso de la memoria para liberarlo, no simplemente pausar la aplicación. ¡Aunque este ES un programa muy útil para aplicaciones intensivas de CPU que puede necesitar pausar!
Avance
Suspender un proceso efectivamente congela todos los demás procesos que le envían algunos mensajes de Windows. Sucede que a algunos procesos les gusta enviar mensajes a otros procesos, y a algunos procesos les gusta ser objetivos para tales transmisiones. Por lo tanto, suspender algunos procesos es inofensivo, pero en otros casos interferirá Su trabajo con la computadora. Y una cosa más. Algunos procesos, después de reanudarse de una suspensión de larga duración, se congelarán y tomarán toda su CPU para compensar todo el tiempo perdido computando algo muy inteligente: P
Roland Pihlakas
También hay una utilidad de línea de comandos pssuspend de MS Sysinternals. Puede encontrarlo allí: technet.microsoft.com/en-us/sysinternals/bb897540 . Es parte de un paquete de PsTools: technet.microsoft.com/en-us/sysinternals/bb896649 donde también puede encontrar, por ejemplo, una herramienta pskill , que es bastante útil después de reanudar un proceso y resulta demasiado emocionante. .
Roland Pihlakas
1
@Breakthrough, pero si el proceso se suspende, dejará de lado la memoria (ya que otros programas utilizan la memoria, provocarán que este se pagine) sin intentar recuperarlo hasta que lo reanude. Esta es realmente la forma más cercana / segura de obtener lo que desea: un programa suspendido intercambiado básicamente es una instantánea almacenada de forma segura, solo una que se pierde al reiniciar.
binki
-1

Puede usar WinDbg (herramienta de Microsoft) para crear un volcado del estado actual de una máquina con Windows. Por lo general, esto se usa para analizar problemas, pero tal vez también podría satisfacer sus necesidades. Busque palabras clave WinDbg y volcado para obtener más información, tal vez incluso haya una opción para volcar solo procesos únicos.

Simon D.
fuente
El archivo de volcado no se puede utilizar para restaurar el proceso.
user2284570