Как убить процесс ?
-
ukms
Как убить процесс ?
Прелюдия.
Винда 2000. Заходим под админом.
Действие.
Запускаем процесс (например cmd) программой runas от имени пользователя имеющего разрешения на убивание процессов.
Затем запускаем программу убивания. На функции OpenProcess для Id процесса cmd винда нас посылает заковыристым ругательством ERROR_ACCESS_DENIED.
Менеджер задач винды тоже не может убить этот злосчастный cmd.
Эпилог.
HEEEEEEELP !
Есть ли управа ?
Винда 2000. Заходим под админом.
Действие.
Запускаем процесс (например cmd) программой runas от имени пользователя имеющего разрешения на убивание процессов.
Затем запускаем программу убивания. На функции OpenProcess для Id процесса cmd винда нас посылает заковыристым ругательством ERROR_ACCESS_DENIED.
Менеджер задач винды тоже не может убить этот злосчастный cmd.
Эпилог.
HEEEEEEELP !
Есть ли управа ?
-
vasketsov
Re: Как убить процесс ?
ukms
Есть.
В качестве подсказки напишу SeDebugPrivilege.
Taskmgr эту привилегию себе не включает, потому и не умеет это делать.
Есть.
В качестве подсказки напишу SeDebugPrivilege.
Taskmgr эту привилегию себе не включает, потому и не умеет это делать.
-
AlieNET
Re: Как убить процесс ?
У меня новая информация. Сегодня после экспериментов опять образовалось 3 зависших копии регета. Но я не стал ни на одну из них повторять команду "убить процесс". Команда шла только один раз: когда при открытии новой копии программы предлагалось убить старую - я отвечал close её. После этого я забыл про эти процессы-призраки и вспомнил о них... часов через 6, когда кончился интернет и надо было перезагружать систему: смотрю... - а нету их! Все чистенько. Но висели они от команды close до исчезновения никак не меньше 3 часов.
Самая вероятная версия: это связано с онлайном. Пока ты в онлайне, убить дорвавшийся до него регет до конца нельзя. Стоит из онлайна выйти - становится проще.
Вторая версия: если не долбить повторные команды kill, системе закончить процесс легче, и (всего через каких-то 3-4 часа...) она это сделает.
Но надо будет поэксперементировать.
Все равно странно: другие проги, вроде FlashGet или eMule, порешаются без проблем, независимо от состояния соединения.
Самая вероятная версия: это связано с онлайном. Пока ты в онлайне, убить дорвавшийся до него регет до конца нельзя. Стоит из онлайна выйти - становится проще.
Вторая версия: если не долбить повторные команды kill, системе закончить процесс легче, и (всего через каких-то 3-4 часа...) она это сделает.
Но надо будет поэксперементировать.
Все равно странно: другие проги, вроде FlashGet или eMule, порешаются без проблем, независимо от состояния соединения.
-
vasketsov
Re: Как убить процесс ?
Спасиба !
Интересно, я думал эта привилегия только к отладке имеет отношение...
Будем пробовать.
Интересно, я думал эта привилегия только к отладке имеет отношение...
Будем пробовать.
-
ukms
Re: Как убить процесс ?
Похожий вопрос вдогонку.
Под win2000 бывает такая ситуация: хочешь убить подвисший процесс, нажимаешь "снять", и если недождавшись ответа попробовать уже "заказанный"
процесс убить снова, начинается тоже Access Denied, только уже совсем безнадежный: не убить его больше никак.
Обидно: система работоспособность сохранила, а в памяти висит какая-то зависшая хрень и ничего с нею не поделать. Неужели только перезагрузка?
Попробовал следовать подсказке уважаемого vasketsova, нашел в Local policies параметр Debug programs и присвоил себе права на это дело наравне с админом. Но залогинен я в это время был не админом, а собой-юзверем и изменений никаких не заметил: как висело два зависших процесса и ругались на попытку снятия Access Denied - так и продолжали висеть...
Под win2000 бывает такая ситуация: хочешь убить подвисший процесс, нажимаешь "снять", и если недождавшись ответа попробовать уже "заказанный"
процесс убить снова, начинается тоже Access Denied, только уже совсем безнадежный: не убить его больше никак.Обидно: система работоспособность сохранила, а в памяти висит какая-то зависшая хрень и ничего с нею не поделать. Неужели только перезагрузка?
Попробовал следовать подсказке уважаемого vasketsova, нашел в Local policies параметр Debug programs и присвоил себе права на это дело наравне с админом. Но залогинен я в это время был не админом, а собой-юзверем и изменений никаких не заметил: как висело два зависших процесса и ругались на попытку снятия Access Denied - так и продолжали висеть...
-
AlieNET
Re: Как убить процесс ?
Видать, в моем случае дело не в привилегиях: ведь когда я первый раз командую taskmanager'у выгрузить зависший процесс, он задание принимает(т.е. привилегии есть). Но результатов команды - никаких, и ты пытаешься убить процесс снова. И после этого его уже ничем не проймешь.
Перепробовал:
TaskMan+ v1.5 (замена Taskmanager'у, берущая себе debug-привилегии для убивания процессов, когда залогинен админом)
Kill.exe из Windows 2000 Support Tools - пишет: - ' ' could not be killed
Наконец, pskill.exe - улучшенный вариант kill.exe
Результат один: access denied...
Может быть, надо дождаться результатов первой попытки системы выгрузить зависший процесс - но иногда такое чувство, что ждать придется вечно.
Так вот, может ли в такой ситуации, когда убил процесс, система "задумалась", а ты убил его в это время снова - помочь что-нибудь, кроме перезагрузки?
Перепробовал:
TaskMan+ v1.5 (замена Taskmanager'у, берущая себе debug-привилегии для убивания процессов, когда залогинен админом)
http://www.diamondcs.com.au/index.php.htm?page=taskman
Kill.exe из Windows 2000 Support Tools - пишет: - ' ' could not be killed
Наконец, pskill.exe - улучшенный вариант kill.exe
http://www.sysinternals.com/ntw2k/fr.../pstools.shtml
Результат один: access denied...

Может быть, надо дождаться результатов первой попытки системы выгрузить зависший процесс - но иногда такое чувство, что ждать придется вечно.
Так вот, может ли в такой ситуации, когда убил процесс, система "задумалась", а ты убил его в это время снова - помочь что-нибудь, кроме перезагрузки?
-
hasherfrog
Re: Как убить процесс ?
AlieNET
Вопрос очень интересный, так как его решение может помочь найти защиту от убивания своих процессов. Необходимо уточнение. Что это за процесс? Права пользователя, дающего задание на снятие процесса (админ, адвансед, кастом)?
Вопрос очень интересный, так как его решение может помочь найти защиту от убивания своих процессов. Необходимо уточнение. Что это за процесс? Права пользователя, дающего задание на снятие процесса (админ, адвансед, кастом)?
-
AlieNET
Re: Как убить процесс ?
hasherfrog
Компьютер только мой, Win2000 Pro SP4, когда я вышеприведеные "убивалки" испытывал, был залогинен админом. Процесс - это ReGet Deluxe 3.3b178, обработанный "волшебной файлочкой"
от ROR'а. У меня стоит ZoneAlarm, и когда ReGet Update пытается выйти в сеть, я ему запрещаю это напрочь(самому regetdx.exe качать разрешено). После очередного "облома" апдейта запустивший его regetdx не может выйти в инет(не висит, но качать не может).
Тогда я запускаю новый регет, появляется окошко, предлагающее закрыть одноименный более ранний процесс(типа: close, retry, cancel). Жму на Close, новый регет запускается и работает без проблем, но старый процесс с таким же именем продолжает висеть в памяти, и ничем его не убьешь!
Иногда доходит до трех копий регета, висящих в процессах.
Может ли окошко access denied означать не отсутствие привилегий(я ж админ?!), а то, что к процессу не пробиться, т.к. он не отвечает - так крепко завис? Ведь когда я жму на close, запуская вторую копию регета, система делает первую попытку убить процесс. После этого я пытаюсь его снять снова и снова, и все время получаю access denied.
Избавляет от этих "призраков" только перезагрузка, а это обидно: система то вполне работает и не тормозит, а выгрузить зависших регетов - не может...
Добавлено:
Тут что-то связано с тем, что зависающие процессы пытаются выйти в интернет. Помимо случая с регетом у меня недавно был аналогичный с eMule - поставил 5-ую версию ZoneAlarm, и она стала вешать мне осла, а вместе с ним и win2000! Откатился до ZA 4.5 - все работает великолепно. Без участия интернета неразрешимых (без перезагрузки) проблем с Вин2К у себя не припомню.
Компьютер только мой, Win2000 Pro SP4, когда я вышеприведеные "убивалки" испытывал, был залогинен админом. Процесс - это ReGet Deluxe 3.3b178, обработанный "волшебной файлочкой"
от ROR'а. У меня стоит ZoneAlarm, и когда ReGet Update пытается выйти в сеть, я ему запрещаю это напрочь(самому regetdx.exe качать разрешено). После очередного "облома" апдейта запустивший его regetdx не может выйти в инет(не висит, но качать не может).Тогда я запускаю новый регет, появляется окошко, предлагающее закрыть одноименный более ранний процесс(типа: close, retry, cancel). Жму на Close, новый регет запускается и работает без проблем, но старый процесс с таким же именем продолжает висеть в памяти, и ничем его не убьешь!
Иногда доходит до трех копий регета, висящих в процессах.
Может ли окошко access denied означать не отсутствие привилегий(я ж админ?!), а то, что к процессу не пробиться, т.к. он не отвечает - так крепко завис? Ведь когда я жму на close, запуская вторую копию регета, система делает первую попытку убить процесс. После этого я пытаюсь его снять снова и снова, и все время получаю access denied.
Избавляет от этих "призраков" только перезагрузка, а это обидно: система то вполне работает и не тормозит, а выгрузить зависших регетов - не может...

Добавлено:
Тут что-то связано с тем, что зависающие процессы пытаются выйти в интернет. Помимо случая с регетом у меня недавно был аналогичный с eMule - поставил 5-ую версию ZoneAlarm, и она стала вешать мне осла, а вместе с ним и win2000! Откатился до ZA 4.5 - все работает великолепно. Без участия интернета неразрешимых (без перезагрузки) проблем с Вин2К у себя не припомню.
-
DubleZero
Re: Как убить процесс ?
AlieNET
Цитата:
поставил 5-ую версию ZoneAlarm, и она стала вешать мне осла,
Точно такая же ситуация. Только я думал, че-то с ослом не то - переставил на более раннюю версию - через какое-то время все то же самое началось - напрочь зависает, спасает только ребут.
Цитата:
поставил 5-ую версию ZoneAlarm, и она стала вешать мне осла,
Точно такая же ситуация. Только я думал, че-то с ослом не то - переставил на более раннюю версию - через какое-то время все то же самое началось - напрочь зависает, спасает только ребут.
-
hasherfrog
Re: Как убить процесс ?
AlieNET
Вы не могли бы с помощью PsExplorer (так кажется) от
Вы не могли бы с помощью PsExplorer (так кажется) от
www.sysinternals.com
посмотреть на ресурсы и свойства процесса Reget (до и после зависания)? Может, что-то прояснится.