Здравствуйте,
Наклипал вот такую штуку, в тестах все удачно прошло, но, я не подумал что реальные процессы для которых это делалось имеют одинаковые имена, соответственно формула не отрабатывает, т.к. при выводе Get-Process -Name someprogram я получаю целый список.
Сам вижу несколько вариантов,
Либо как-то привязать определенное кол-во pid'ов к программе (все процессы стартуют из одного экзешника)
Если есть возможность, то считывать с определенной строчки и сделать таких функций столько же сколько процессов, их кол-во будет неизменно, и даже если будут меняться местами, то ничего страшного
или вообще все переделывать уже черт знает как.
Голова уже изрядно побаливает, т.к. пэшем владею только на интуитивном уровне + черный пояс по гуглению, хотя можно ли привязать pid к процессу в винде, так и не выяснил =) по этому пусть будет коричневый пояс. Хотя если ядро закрыто, то что-то мне подсказывает, что нельзя.
$sleepseconds = 1
$numcores = 4
while($true) {
$cpu1 = (Get-Process -Name KeePass).cpu
sleep $sleepseconds
$cpu2 = (Get-Process -Name KeePass).cpu
$result=[int](($cpu2 - $cpu1)/($numcores*$sleepseconds) * 100)
if ($result -gt 75)
{
Stop-Process -Name KeePass
}
}
Цель в убийстве процесса, который жрет 75% cpu
Посоветуйте что-нибудь, пожалуйста!