Как получить PID процесса, указав имя процесса и сохраните его в переменной для дальнейшего использования?
Используя команду "ucbps", я могу получить все PID
$ ucbps
Userid PID CPU % Mem % FD Used Server Port
=========================================================================
512 5783 2.50 16.30 350 managed1_adrrtwls02 61001
512 8896 2.70 21.10 393 admin_adrrtwls02 61000
512 9053 2.70 17.10 351 managed2_adrrtwls02 61002
Я хочу сделать это так, но не знаю, как это сделать
- variable = get pid процесса по имени процесса.
- Затем используйте эту команду kill -9.
Ответы
Ответ 1
Если вы хотите убить -9 на основе строки (вы можете сначала попытаться убить ее), вы можете сделать что-то вроде этого:
ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}'
Это покажет вам, что вы собираетесь убить (очень, очень важно) и просто передайте его на sh
, когда придет время:
ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}' | sh
Ответ 2
pids=$(pgrep <name>)
вы получите pids всех процессов с заданным именем. Чтобы убить их всех, используйте
kill -9 $pids
Не использовать переменную и напрямую убивать все процессы с заданной проблемой имени
pkill -9 <name>
Ответ 3
В одной строке...
pgrep -f process_name | xargs kill -9
Ответ 4
Другая возможность - использовать pidof
, как правило, с большинством дистрибутивов. Он вернет вам PID данного процесса, используя его имя.
pidof process_name
Таким образом, вы можете сохранить эту информацию в переменной и выполнить kill -9
на ней.
#!/bin/bash
pid=`pidof process_name`
kill -9 $pid
Ответ 5
используйте grep [n] ame, чтобы удалить это имя grep -v, это первое... Sec, используя xargs в том, как это происходит, неправильно для rnu, что бы вы ни использовали, - я (интерактивный режим), иначе у вас могут возникнуть проблемы с командой.
ps axf | grep | grep -v grep | awk '{print "kill -9" $1}'?
ps aux | grep [n] ame | awk '{print "kill -9" $2}'? разве это не лучше?