Привет У меня есть этот процесс дерево:Как убить дерево процессов в ОС Windows
выше скриншот показывает дерево процессов. В моем скрипте Perl я знаю PID dscli. Я написал следующий код, чтобы убить одного PID:
use Win32::Process;
use strict;
use warnings;
if(defined($ARGV[0])){
my $pid = "$ARGV[0]";
my $exitcode = 0;
Win32::Process::KillProcess($pid, $exitcode);
}else{
print "No argument provided :(\n";
}
Проблема заключается в том, что в моем сценарии я не знаю, процесс Java PID. Я должен получить дочерний PID пользователя dscli, который является java-процессом. Если я уничтожу PID dscli, используя вышеуказанный код, тогда ребенок (java) не умрет вместе с ним.
Так что мой вопрос: как я могу убить процесс java, который является дочерним элементом dscli, используя perl?
'getppid' не реализована на Win32, что означает просто проходящие через каждый процесс проверки, если данный PID является его родитель не будет работать :( – DVK
Там очень знающий Perl/Пользователь Windows по адресу http://www.perlmonks.org/ – ikegami
Также, если вы можете узнать, как это сделать i n C (используя API или WMI), я могу помочь вам перенести его на Perl. – ikegami