Linux: как завершить процесс, принадлежащий пользователю root, по имени параметра?

Linux: как завершить процесс, принадлежащий пользователю root, по имени параметра?

Я хотел бы знать, как завершить процессы, принадлежащие пользователю root, на основе информации об их параметрах:

root      3176  0.0  0.8   3604  2252 ?        S    21:33   0:00 sudo python main.py
root      3191 65.4  4.6  96820 11744 ?        Rl   21:33  10:00 python main.py

Я пытаюсь сделать так, но безуспешно:

pi@raspberrypi ~ $ ps aux | grep main.py | awk '{print $2}' | xargs kill
pi@raspberrypi ~ $ sudo pkill -u root main.py

решение1

pkill был бы более простым подходом, вы просто пропустили один параметр.

Из "man pkill":

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

В вашем случае имена процессов — «python» и «sudo».

решение2

Ага, я это исследовал; так что вам нужно изменить это на

ps aux|grep main.py|awk '{print $2}'|sudo xargs kill -9

Я обновил свой ответ, чтобы отразить запрошенный код.

Связанный контент