|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Как убить процесс ? |
|
|
Как убить процесс ?
|
Новый участник Сообщения: 41 |
Прелюдия.
Винда 2000. Заходим под админом. Действие. Запускаем процесс (например cmd) программой runas от имени пользователя имеющего разрешения на убивание процессов. Затем запускаем программу убивания. На функции OpenProcess для Id процесса cmd винда нас посылает заковыристым ругательством ERROR_ACCESS_DENIED. Менеджер задач винды тоже не может убить этот злосчастный cmd. Эпилог. HEEEEEEELP ! Есть ли управа ? |
|
------- Отправлено: 14:25, 22-10-2002 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать ukms
Есть. В качестве подсказки напишу SeDebugPrivilege. Taskmgr эту привилегию себе не включает, потому и не умеет это делать. |
------- Отправлено: 14:29, 22-10-2002 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Спасиба !
Интересно, я думал эта привилегия только к отладке имеет отношение... Будем пробовать. |
------- Отправлено: 14:44, 22-10-2002 | #3 |
![]() Guest |
Похожий вопрос вдогонку.
Под win2000 бывает такая ситуация: хочешь убить подвисший процесс, нажимаешь "снять", и если недождавшись ответа попробовать уже "заказанный" ![]() Обидно: система работоспособность сохранила, а в памяти висит какая-то зависшая хрень и ничего с нею не поделать. Неужели только перезагрузка? Попробовал следовать подсказке уважаемого vasketsova, нашел в Local policies параметр Debug programs и присвоил себе права на это дело наравне с админом. Но залогинен я в это время был не админом, а собой-юзверем и изменений никаких не заметил: как висело два зависших процесса и ругались на попытку снятия Access Denied - так и продолжали висеть... |
Отправлено: 06:17, 24-06-2004 | #4 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Видать, в моем случае дело не в привилегиях: ведь когда я первый раз командую taskmanager'у выгрузить зависший процесс, он задание принимает(т.е. привилегии есть). Но результатов команды - никаких, и ты пытаешься убить процесс снова. И после этого его уже ничем не проймешь.
Перепробовал: TaskMan+ v1.5 (замена Taskmanager'у, берущая себе debug-привилегии для убивания процессов, когда залогинен админом) http://www.diamondcs.com.au/index.php?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... ![]() Может быть, надо дождаться результатов первой попытки системы выгрузить зависший процесс - но иногда такое чувство, что ждать придется вечно. Так вот, может ли в такой ситуации, когда убил процесс, система "задумалась", а ты убил его в это время снова - помочь что-нибудь, кроме перезагрузки? |
|
------- Отправлено: 07:14, 26-06-2004 | #5 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать AlieNET
Вопрос очень интересный, так как его решение может помочь найти защиту от убивания своих процессов. Необходимо уточнение. Что это за процесс? Права пользователя, дающего задание на снятие процесса (админ, адвансед, кастом)? |
Отправлено: 10:48, 26-06-2004 | #6 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать hasherfrog
Компьютер только мой, Win2000 Pro SP4, когда я вышеприведеные "убивалки" испытывал, был залогинен админом. Процесс - это ReGet Deluxe 3.3b178, обработанный "волшебной файлочкой" ![]() Тогда я запускаю новый регет, появляется окошко, предлагающее закрыть одноименный более ранний процесс(типа: close, retry, cancel). Жму на Close, новый регет запускается и работает без проблем, но старый процесс с таким же именем продолжает висеть в памяти, и ничем его не убьешь! Иногда доходит до трех копий регета, висящих в процессах. Может ли окошко access denied означать не отсутствие привилегий(я ж админ?!), а то, что к процессу не пробиться, т.к. он не отвечает - так крепко завис? Ведь когда я жму на close, запуская вторую копию регета, система делает первую попытку убить процесс. После этого я пытаюсь его снять снова и снова, и все время получаю access denied. Избавляет от этих "призраков" только перезагрузка, а это обидно: система то вполне работает и не тормозит, а выгрузить зависших регетов - не может... ![]() Добавлено: Тут что-то связано с тем, что зависающие процессы пытаются выйти в интернет. Помимо случая с регетом у меня недавно был аналогичный с eMule - поставил 5-ую версию ZoneAlarm, и она стала вешать мне осла, а вместе с ним и win2000! Откатился до ZA 4.5 - все работает великолепно. Без участия интернета неразрешимых (без перезагрузки) проблем с Вин2К у себя не припомню. |
------- Отправлено: 02:43, 27-06-2004 | #7 |
Старожил Сообщения: 256
|
Профиль | Отправить PM | Цитировать AlieNET
Цитата:
|
|
Отправлено: 15:40, 27-06-2004 | #8 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать AlieNET
Вы не могли бы с помощью PsExplorer (так кажется) от www.sysinternals.com посмотреть на ресурсы и свойства процесса Reget (до и после зависания)? Может, что-то прояснится. |
Отправлено: 13:57, 28-06-2004 | #9 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать hasherfrog
Отправил вам свой ReGet вместе с патчем(1.6Мб). Велика вероятность, что он будет также "мерзнуть" в процессах, что и у меня. Т.к. эта же история была и под Win98 - т.е. дело не в конкретной ОСи. Если все "заработает как надо" ![]() *может потребоваться стенка ZA 4.5, но есть такое чувство, что всё получится и сдругой стенкой, или даже без неё. **в архиве также текстовик с ресурсами процесса до и после зависания - надеюсь, пригодится. Если глюков не будет - тогда постараюсь выслать вам инфу о зависаниях, добытую при помощи TaskInfo2003 - эта прога умеет копировать данные в буфер, только скажите - что интересует. По прежнему думаю, что дело связано с завязками процесса ReGet на какиме-то ресурсы системы, которые помогают ему выйти в интернет. Зависание тут возможно провоцирует файрвол. В результате процесс убиваешь, а часть, которая связана с этими ресурсами система убить не может - и получается "призрак". Повторюсь, что если Win2000 у меня и глючит крепко - то только в связи с программами, лезущими в онлайн. Система плохо убивает процессы, имеющие отношение к сети - знать бы, почему... *если убить телефонию, например, а потом запустить её снова - коннекта нет, приходится перезагружаться. |
------- Отправлено: 04:35, 29-06-2004 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] убить процесс - среди одинаковых | foxbat | Скриптовые языки администрирования Windows | 2 | 04-08-2009 16:06 | |
help! не могу сообразить как убить процесс | zl3p | Программирование в *nix | 2 | 05-02-2007 22:10 | |
Зависший процесс на W2K3. Как убить без перезагрузки? | brzl | Microsoft Windows NT/2000/2003 | 6 | 08-01-2007 15:49 | |
Delphi - Убить процесс на Delphi | btx | Программирование и базы данных | 1 | 18-03-2005 12:43 | |
Убить зависший процесс | vippy | Microsoft Windows NT/2000/2003 | 8 | 02-04-2004 07:32 |
|