Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.05.2018
Сообщений: 5

Поиск и завершение "висящих" процессов

09.10.2018, 16:33. Показов 2983. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый день.
Суть такая, имеем терминальный сервер, есть процессы которые "висят" но отвечают. Их несколько с одинаковым именем.
Надо найти те что висят давно и кильнуть.
Что делал:
Get-Process | Where-Object {$_.Name -contains "Crystal"} | select-Object TotalProcessorTime
Выдаёт 4 результат
TotalProcessorTime
------------------
00:03:48.4843750
23:48:35.0781250
00:00:10.9218750
15:12:51.5937500

Тут видно что 2 и 4 процесс "больные".
Как написать код чтобы кильнуть именно их?

PowerShell
1
2
$PROСTIME = (Get-Process |  where-Object {$_.Name -contains "Crystal"}).TotalProcessorTime 
if ($PROСTIME -gt 80000 ) {-Stop-Process}
Думал так выйдет, но это лажа какая-то)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.10.2018, 16:33
Ответы с готовыми решениями:

Завершение всех запущенных процессов из находящегося в текстовом файле списка запрещенных к запуску процессов
пожалуйста помогите написать батник. Задать в текстовом файле список процессов, запрещенных к запуску. Создать командный файл,...

Работа с системой: поиск/завершение процессов
Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal...

Как организовать поиск и завершение процессов?
Как сделать так чтобы программа искала процессы и закрывала их? При чем не один раз а много т.е если нужную программу снова открыть нужно...

3
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
09.10.2018, 17:12
Цитата Сообщение от Konstantin_SPb Посмотреть сообщение
Тут видно что 2 и 4 процесс "больные".
Как написать код чтобы кильнуть именно их?
PowerShell
1
Get-Process | ? {$_.TotalProcessorTime.TotalSeconds -gt 43200 -and $_.Name -contains "Crystal"} | Stop-Process
0
0 / 0 / 0
Регистрация: 24.05.2018
Сообщений: 5
09.10.2018, 17:44  [ТС]
Спасибо! Мне такой вариант нравится.
Но если чуть "усложнить".
Вот нашёл на просторах такой скрипт
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
сls
 
#Узнаем сколько у нас всего ядер
$core = Get-WmiObject -Class Win32_ComputerSystem | Select-Object NumberOfLogicalProcessors
 
#Первый замер
$data_start = Get-Date
$process_start = Get-Process | Where-Object {$_.Name -contains "7zFM"} | Select-Object TotalProcessorTime
 
# "Поспим" немного и "поработаем" в данном процессе
start-sleep -Seconds 5
 
#Второй замер
$data_stop = Get-Date
$process_stop = Get-Process | where-Object {$_.Name -contains "7zFM"}
 
#Подсчитаем загрузку
$Data_delta = $data_stop.Ticks - $data_start.Ticks
$CPU_delta = $process_stop.TotalProcessorTime.Ticks - $process_start.TotalProcessorTime.Ticks
 
if ($Data_delta -gt 0 -and $CPU_delta -gt 0){
    $CPU_Load = ($CPU_delta * 100) / ($Data_delta * $core.NumberOfLogicalProcessors)
}else{
    $CPU_Load = 0
}
# Выводим результат
Write-Host $CPU_Load
.
Но он валится с ошибкой, как раз из-за того что несколько процессов с одинаковым именем.
Как его докрутить "правильно"?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
09.10.2018, 18:15
Цитата Сообщение от Konstantin_SPb Посмотреть сообщение
Но он валится с ошибкой, как раз из-за того что несколько процессов с одинаковым именем.
Как его докрутить "правильно"?
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
cls
 
#Узнаем сколько у нас всего ядер
$core = Get-WmiObject -Class Win32_ComputerSystem | Select-Object NumberOfLogicalProcessors
 
foreach ($Process in gps | ? {$_.Name -contains "7zFM"})
{
 
    #Первый замер
    $data_start = Get-Date
    $process_start = Get-Process -id $Process.Id | Select-Object TotalProcessorTime
 
    # "Поспим" немного и "поработаем" в данном процессе
    start-sleep -Seconds 5
 
    #Второй замер
    $data_stop = Get-Date
    $process_stop = Get-Process -id $Process.Id | where-Object {$_.Name -contains "7zFM"}
 
    #Подсчитаем загрузку
    $Data_delta = $data_stop.Ticks - $data_start.Ticks
    $CPU_delta = $process_stop.TotalProcessorTime.Ticks - $process_start.TotalProcessorTime.Ticks
 
    if ($Data_delta -gt 0 -and $CPU_delta -gt 0)
    {
        $CPU_Load = ($CPU_delta * 100) / ($Data_delta * $core.NumberOfLogicalProcessors)
    }
    else
    {
        $CPU_Load = 0
    }
    # Выводим результат
    "Name: $($Process.Name)"
    "Id: $($Process.Id)"
    "CPU_Load: $CPU_Load`n"
 
}
Добавлено через 5 минут
Цитата Сообщение от Konstantin_SPb Посмотреть сообщение
Но если чуть "усложнить".
Вот нашёл на просторах такой скрипт
И да - не знаю, что именно вы хотели усложнить, но этот скрипт не останавливает никаких "висящих" процессов, а только высчитывает TotalProcessorTime.Ticks у нужного процесса, прошедшие за 5 секунд.

Добавлено через 11 минут
Но для получения информации о загрузки CPU существует Get-Counter


Что-то тира этого:

PowerShell
1
2
3
4
if (Get-Counter -ListSet * | ? Paths -Match "\\Процесс\(\*\)\\"){$CounterPath = "\Процесс(*)\% загруженности процессора"}
else {$CounterPath = "\Process(*)\% Processor Time"}
 
(Get-Counter -Counter $CounterPath -SampleInterval 1 -MaxSamples 10 -EA SilentlyContinue).CounterSamples | ? CookedValue -ne 0 | ft InstanceName,CookedValue
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2018, 18:15
Помогаю со студенческими работами здесь

Завершение процессов
Добрый день, есть вот такое задание Процесс 1 порождает потомка 2, который в свою очередь порождает потомка 3. С помощью сигналов...

Завершение процессов
Ребята ! нужна ваша помощь !!! Как закрыть все процессы кроме определенных ??? Желательно на примере . Спасибо.

Завершение процессов
Как в Паскале можно завершить запущенный процесс?

Принудительное завершение процессов
Ребята приветствую, помогите проблемой. Поставил я вообщем винду 8 на компьютер достаточной слабый всего 1гб оперативы DDR2 мамка не знаю...

Завершение дерева процессов
Ребят,дайте код,которым можно завершить дерево процессов в c#


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru