![]() |
Поставить юзверя на "паузу"
Всем привет.
Идея возникла из обсуждения http://forum.ixbt.com/topic.cgi?id=22:91540:294#294. Я там под ником cheloyekus Можно ли сделать скрипт, чтобы при выходе из пользователя (смене) все его процессы ставились на "паузу" и выгружались из памяти, а при входе "размораживались"? |
vombat2, есть три варианта решения озвученной там проблемы:
|
Вложений: 2
Цитата:
Во вложениях - FF с 148 вкладками "заморозка"/"разморозка". |
Цитата:
Цитата:
Давайте будем честны: Вам не нужны «все процессы», Вам достаточно приостановить работу браузера, как основного потребителя оперативной памяти. Посему возьмите PsSuspend64.exe (PsSuspend - Windows Sysinternals | Microsoft Docs) из комплекта PsTools (PsTools - Windows Sysinternals | Microsoft Docs) и сделайте два ярлыка на него в общем Главном меню или общем Рабочем столе — один на suspend процессов браузера текущего пользователя, другой — на resume их же. |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
1 ситация) Молодая мама, работает за ПК, на всякий случай не моя жена, но ситуация из жизни, работает за ПК, открывает там кучу программ (по работе), где-то что-то читает, куча вкладок, где-то пишет, где-то считает, где-то чертит и т.д. Затем встает, чтоб отдохнуть или сварить каши, с чувством полной безопасности или легкого пофигизма ни чего не сохранив, пароль у нее надежный. Радосный шкед подбегает чтоб зарядить свои любимые "червячки" или "танчики", но ни чего у него не работатет все дико виснет. Он, не будь дурак, делает перезагрузку, после чего все начинает фурыкать, как и ожидалось. Спустя время подходит мама, и начинаются дикие крики, стоны.. Я о чем.. детей жалко. 2 ситация) 2 студентки, одна пишет диплом, другая курсовую, у них один ПК, возможно они сестры.. 3 ситуация) Мать, бабушка, шкед... В общем, лень описывать, ситуаций может быть море, когда одним компом могут пользоваться несколько человек и когда нужно сохранить именно рабочее пространство, именно так как все открыто - может быть это какие-то карты, или планы участка и т.д., таблицы, вкладки, когда человек просто потеряет уйму времени все переоткрывая и перевосстанавливая.. И в тоже время другому надо срочно что-то посмотреть, что-то сделать, не затрагивая чужого "бардака". Частенько с таким сталкивался.. |
Цитата:
Вкладки браузера - сами сохраняются и восстанавливаются при перезапуске браузера, если кто-то не поленился потратить минуту времени на изучение тех же настроек. Остальное не так критично, проблема же перезагрузки "шкетом" решается разграничением прав доступа к машине и обрезанием ему ненужных функций через политики. Цитата:
Цитата:
|
Если чес. не хочется ни кому ни чего доказывать, но данный вопрос меня мучил еще в далеких 2000х когда вопрос спамятью и быстродействием стоял более остро, но учитывая и тогдашний уровень технологий и несовершенство самой оси (XP) с процедурой заморозки и загрузки/выгрузки обычно случались траблы. Недавно обзаведясь недорогим SSD и установив на него файл подкачки (собственно для этого и был приобретен девайс) вдруг вспомнил и решил проверить фичу - все работает причем до удивления быстро и стабильно. Можно наоткрывать кучу вкладок, окон, приложений, потом заморозить (хоть буквально всего пользователя), выгрузить из памяти, затем разморозить и также быстро все вернется в рабочую среду - считанные секунды. Еще заметил такой нюанс - попытался открыть в FF 2017 кучу вкладок, но все зависло, в то время как процессор был занят лишь на 1/3 своей мощности. Современные же FF и Crome спокойно справляются и с 150 и с 200 вкладками (при условии размещения конечно свапа на ssd) и процессор используют на 100%. Данные обстоятельства меня не могут не радовать, можно сказать дожил, увидел технологии!)). Данный скрипт мне не необходим, просто хотелось сделать его для людей, или, так скажем, поделиться мыслью. Может быть сам как-нибудь его напишу, если будет время поразбираться, скорее всего лучше, я думаю, сделать в AutoIT..
|
Вложений: 1
Цитата:
|
Вложений: 1
А так выглядит "поднятие" этих вкладок с нуля. Здесь речь идет о браузерных вкладках, но это лишь для примера..
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
2. Вы не можете управлять непосредственно, чем будет занята физическая память, это прерогатива операционной системы. Вы можете лишь пытаться влиять на сие опосредованно (чем Вы и занимаетесь, делая suspend/resume ресурсоёмкому приложению). Это сродни всяческим приснопамятным «оптимизаторам» и «чистильщикам» оперативной памяти, вся суть которых заключалась в запросе у операционной системы N Mb оперативной памяти и попыткам активного вытеснения страниц памяти других приложений в файл подкачки — по факту же ничего не «освобождалось» ни на гран. Цитата:
|
Речь то о том, что можно быстро переключаться между разными нагружными задачами. Вот монтируете Вы допустим видео, понадобилось что-то срочное, Вы его бульк в свап и запускаете, какой-нибудь 3d-кад, ворд, ексель и т.д. Потом все это также - "бульк" и "достаете" вновь видеоредактор и продолжаете монтировать. Играет там ребенок (может быть большой "ребенок") в какой-нибудь игур и вот уже, осталось немного до окончания миссии, приходит мама и г-рит "прыгай отседа, мне надо посмотреть подсветочники, и ты вообще уже 2 часа сидишь" он все сворачивает уходит, мама перелогинивается и спокойно смотрит свои подцветоники, одноклассники и т.д. Это только частные случаи и конечно нужен SSD и как минимум средний процессор. Хотя в принципе и на слабом проце (1.4 ггц 2 core) с hdd все работает, разве что не так быстро, но для слабых процов не актуальны нагружные задачи.
|
Цитата:
|
Сыроват US Browser, интерфейс не внятный, не согласуется с функциональными клавишами Андроида, грузит быстро, но управление портит все впечатление.
|
Пока что выяснил, как вывести все процессы пользователя в файл
Код:
chcp 1251 chcp 1251 - для вывода в удобочитаемой кодировке |
Так можно "притормозить" все процессы "chrome.exe" пользователя "user":
Код:
tasklist /FI "username eq user" | findstr /i "chrome.exe" > userlist.txt Код:
for /F "TOKENS=2" %a in ('type userlist.txt') do (pssuspend -r %a) Для заморозки используется русиновичевская "PsSuspend", закинутая в системный каталог Вопрос с выгрузкой из памяти остается открытым.. |
Цитата:
Как только у какого-то приложения возникнут обширные потребности в памяти (при нехватке последней), так сразу страницы памяти, занятые suspended-процессом, начнут активно сбрасываться в файл подкачки. |
Цитата:
|
Цитата:
Цитата:
|
Вложений: 1
Цитата:
Цитата:
|
Коллега, Вы можете верить во что угодно, дело Ваше. Что же до Руссиновича и «некоей отдельной области "модифицированной" памяти», то я лично предпочитаю этого: RAMMap - Windows Sysinternals | Microsoft Docs, этого: Troubleshooting with the Windows Sysinternals Tools - Mark E. Russinovich, Aaron Margosis - Google Книги, этого: Windows Sysinternals Administrator's Reference - Aaron Margosis, Mark E. Russinovich - Google Книги и этого: Windows Internals - Mark E. Russinovich, David A. Solomon, Alex Ionescu - Google Книги Руссиновича — тому.
|
Докумекал более-менее презентабельный вариант сей задумки. Подсказали на Руборде прожку EmptyStandbyList (от автора все того же Process Hacker'а), позволяющую выгружать все "workingsets" из памяти - не совсем то, но тоже пойдет для данного случая (EmptyStandbyList workingsets). Что в итоге - 2 скрипта (для засыпания и пробуждения юзера) и программки PsSuspend, EmptyStandbyList. Проги нужно закинуть в system32.
SuspendUser.bat Код:
::Заморозка всех процессов текущего пользователя в текущей сессии, за исключением тех, которые могут вызвать глюки или тормоза (explorer, taskhost и т.д.) Код:
for /f "tokens=2 delims=," %%a in ('tasklist/fi "USERNAME eq %username%" /fi "sessionname eq console" /nh /fo csv^|findstr/i /v "explorer taskhost conhost cmd etd"') do pssuspend -r %%a Затем нужно открыть планировщик (taskschd.msc) под админом, и создать там задачу под именем "EmptyWS", без триггеров, в действии указать "EmptyStandbyList.exe", параметр "workingsets". После нужно файлу этой задачи (в папке C:\Windows\System32\Tasks) в совйствах безопасности добавить доступ для группы "пользователи". Задача "EmptyWS" нужна для запуска "EmptyStandbyList workingsets" с админскими правами под обычным пользвателем. Далее выносим ярлык SuspendUser.bat на рабочий стол, запускать, лучше со свернутыми окнами. У меня работает (на Win 8.1, Win7) почти без глюков, за исключением некоторых приложений. Автокад "падает" после таких манипуляций, хотя многие программы спокойно "засыпают" и "просыпаются" - браузеры, Google Earth, игра Dirt4.. |
Время: 10:04. |
Время: 10:04.
© OSzone.net 2001-