Как убить процесс, запущенный в нескольких сеансах, используя скрипт bash или powershell?

3 ответа3

3

На Windows-машинах с установленным PowerShell вы можете просто сделать это:

get-process PROCESS_NAME | stop-process

2

Альтернатива Bash

pgrep killus | while read p; do kill -9 $p; done

убивает все процессы с именем killus

1

Вы хотите автоматизировать это или просто иметь инструмент, позволяющий вручную уничтожать несколько экземпляров процесса по имени, независимо от того, в каком пользовательском сеансе выполняется какой-либо экземпляр? Я предполагаю последнее, и следующее должно выполнить это.

В Windows вы не можете победить утилиту Sysinternals "pskill". Получите пакет SysInternals, распакуйте его и в командной строке просто используйте pskill theprocessname для глубокой шестерки всех экземпляров соответствующего исполняемого файла.

Следующий скрипт bash обеспечит аналогичную функциональность в Linux; Я оставлю это пользователю, чтобы выяснить, как его зациклить, пока не будет больше экземпляров:

#!/bin/bash
if [ $1 -eq ""]; then
echo "Usage : ./pkill.sh <process name>"
else
get_proc=`ps -e -o pid,command | grep $1`
echo $get_proc > get_it
get_pid=`gawk -F" " '{ print $1 }' get_it`
kill -9 $get_pid
fi

(Скрипт взят непосредственно с http://www.linuxweblog.com/kill-process-name, но здесь он вставлен для потомков, потому что я ненавижу находить мертвые ссылки в ответах на сайтах StackExchange.)

Надеюсь это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .