Ответ 1
используйте pkill с опцией -f
.
pkill -f python
Если у вас нет предустановленного pkill
(некоторые osx не...), попробуйте proctools.
Получение следующего вывода из этого:
ps aux | grep Python
Вывод:
user_name 84487 0.0 0.0 0 0 ?? Z 12:15PM 0:00.00 (Python)
user_name 84535 0.0 0.0 0 0 ?? Z 12:16PM 0:00.00 (Python)
Я хочу завершить все процессы Python, выполняемые в настоящее время на машине.
используйте pkill с опцией -f
.
pkill -f python
Если у вас нет предустановленного pkill
(некоторые osx не...), попробуйте proctools.
Если у вас нет pkill
, вы можете попробовать следующее:
ps aux | grep python | grep -v grep | awk '{print $2}'
Если это дает вам идентификаторы PID, которые вы хотите убить, присоедините их к команде kill, подобной этой
kill $(ps aux | grep python | grep -v grep | awk '{print $2}')
Это говорит... убейте все PID, которые являются результатом команды в круглых скобках.
killall python
Сделает трюк.
@shx2: Спасибо за трюк! Вот шаги, чтобы заставить его работать:
Шаг 1:
cd /usr/bin
Шаг 2:
touch "pkill"
Шаг 3. С помощью выбранного текстового редактора откройте только что созданный файл:/usr/bin/pkill (сделайте это с помощью sudo или администратором). Скопируйте/вставьте это и сохраните:
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill $X;
done
Шаг 3. Установите атрибут файла
sudo chmod 755 /usr/bin/pkill
Теперь вы готовы завершить любой процесс с помощью простого синтаксиса:
Например, чтобы завершить все процессы Python, откройте оболочку и введите:
pkill Python
Все процессы python должны быть удалены.
@glenn: Ваша команда не отправляет pid из себя, чтобы убить, что приведет к ошибке "Нет такого процесса". Или я чего-то не хватает. Спасибо.
ps aux | awk '/firefox/{print $2}' | xargs kill kill 1541: Нет такого процесса