Linux: Уничтожьте процесс на основе аргументов

Необходимо будет добавить правило как:

$ iptables -A INPUT -s x.x.x.x -p icmp --icmp-type echo-reply -j ACCEPT
58
07.02.2012, 19:59
4 ответа

pgrep/pkill возьмите a -f флаг. От man страница:

-f    The pattern is normally only matched against the process name.
      When -f is set, the full command line is used.

Например:

$ sleep 30& sleep 60&
[1] 8007
[2] 8008

$ pkill -f 'sleep 30'
[1]  - terminated  sleep 30

$ pgrep sleep
8008
74
27.01.2020, 19:33
  • 1
    +1, но мой удар 4.1.5 не работает на двоеточие после амперсанда (как в первой строке примера)... bash: syntax error near unexpected token ';' ... Это действительно работает в операторе выбора, когда амперсанд сопровождается ;; ... возможно, Вы используете другую оболочку (?) –  Peter.O 07.02.2012, 22:07
  • 2
    @jw013 я на самом деле использовал zsh, который поддерживает синтаксис, я использовал. Отъезд его работает в обоих, хотя, таким образом, я удалил его –  Michael Mrozek♦ 08.02.2012, 08:36
  • 3
    @MichaelMrozek хорошо nvm затем :) Интересно если Unix. SE имеет более высокую пропорцию zsh пользователи, чем в другом месте - я только, кажется, нахожу zsh пользователи здесь. –  jw013 09.02.2012, 08:58

Можно использовать htop просмотреть все в настоящее время рабочие процессы с их параметрами командной строки и уничтожить выбранный процесс.

4
27.01.2020, 19:33

Замена argument ниже с регулярным выражением, которое должно очень полная командная строка процесса:

kill `ps -eo pid,args --cols=10000 | awk '/argument/ && $1 != PROCINFO["pid"] { print $1 }'`
4
27.01.2020, 19:33

Если у вас нет pkill или чего-то еще, просто используйте proc / [1-9] * / cmdline

grep -a myapp.jar /proc/[1-9]*/cmdline|tr '\0' ' '|grep -v grep|awk -F/ '{print $3}'
0
27.01.2020, 19:33

Теги

Похожие вопросы