Czy istnieje sposób na osobne hibernowanie aplikacji Windows?


Odpowiedzi:


8

Wiele osób chciałoby tego, w tym ja.
Niestety nie. Ta operacja nie istnieje i nie może istnieć.

Pomyśl na przykład o zablokowaniu aplikacji, która miała otwarty plik na dysku CD lub otwarte połączenie internetowe. Teraz wyobraź sobie, co trzeba zrobić, aby „zamrozić” i „odblokować” to: wszystkie pliki i połączenia do zapisania, a następnie ponownie utworzone, napęd CD może zostać zweryfikowany i otwarty plik, połączenia internetowe zostaną ponownie ustanowione ze wszystkimi danymi logowania na stronie itp.

Jest to zbyt skomplikowane, aby można je było wdrożyć w dowolnym systemie operacyjnym, i stanowiłoby również lukę w zabezpieczeniach.


2
Wirtualne maszyny? To jednak okropnie niezręczne.
Shinrai

ustawić priorytet aplikacji na najniższe ustawienie? to oczywiście nie
zwolniłoby

1
@Xantec: To nie wytrzyma ponownego uruchomienia.
harrymc

1
to w jaki sposób, do cholery, Windows nawet hibernuje? twierdzisz, że to niemożliwe. Jeśli możesz w pełni hibernować, częściowa hibernacja powinna być równie łatwa
Gizmo

1
więc, jeśli hibernacja systemu Windows jest w stanie zawiesić moją grę, prawdopodobnie mogę ją zawiesić, dopóki nie będzie korzystała z Internetu, napędu CD lub czegokolwiek, co nie będzie później dostępne? Jak zatem wykonać zawieszenie i przywrócenie na proces?
Gizmo

2

Chociaż niektóre systemy mają taką technologię, wymaga to dużego wysiłku zarówno od twórcy systemu operacyjnego, jak i od części twórcy aplikacji. Tak więc w praktyce uważaj odpowiedź za przeczącą. (Przykładami systemów, w których może to działać, są warianty Uniksa, w których zrzuty rdzenia są restartowalne, a implementacje Lisp z funkcją zrzutu. Nawet wtedy może to dziwnie zachowywać się, jeśli aplikacja ma połączenia ze światem zewnętrznym, takie jak otwarte pliki.)

Możesz uruchomić aplikację na maszynie wirtualnej (np. Virtual PC) i hibernować (zapisać stan) całą maszynę wirtualną. Będziesz potrzebował odpowiedniej licencji Windows na maszynie wirtualnej. Jeśli zaczniesz używać maszyn wirtualnych, spodziewaj się, że użycie pamięci RAM znacznie wzrośnie (jeśli korzystasz z systemu operacyjnego hosta i systemu wirtualnego, wymagania pamięci sumują się).


1

Technicznie tak.

Możesz zawiesić:

Windows: Monitor zasobów> Pamięć> Kliknij prawym przyciskiem myszy „process.exe”> Zawieś

Linux: „kill - [STOP / CONT] [PID]”

Ale pozostanie w pamięci RAM, nawet jeśli nie wykorzystuje mocy procesora.

Dlatego musisz albo włączyć komputer, albo ustawić go na hibernację, aby proces nie umarł. W międzyczasie, jeśli twój komputer jest poprawnie skonfigurowany (nie przeczytałem go tak głęboko), powinien móc przenieść zawieszony proces do pliku strony, gdy potrzebuje więcej fizycznej pamięci RAM.

Wiem, że ta odpowiedź jest spóźniona, ale natknąłem się na to pytanie, szukając dokładnie tego samego, więc myślę, że mogę pomóc przyszłym poszukiwaczom przygód znaleźć to, czego szukają. Kto wie? Być może w przyszłości mogą opracować oprogramowanie, które może być oparte na sztucznej inteligencji, aby to osiągnąć.


1
Autor nie używa Linuksa. Zostało to opublikowane jako odpowiedź, ale nie próbuje odpowiedzieć na pytanie. Powinna to być edycja, komentarz, inne pytanie lub całkowicie usunięte.
Ramhound,

@Ramhound Ta odpowiedź zawiera metody dla systemu Windows i Linux. Nie mogę zweryfikować, czy sugerowane podejście do systemu Windows działa, ale na pewno jest w odpowiedzi. Wspomniana metoda dla Linuksa działa (sam często jej używałem).
kasperd
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.