Убить процесс, когда PID постоянно меняется

9

Когда я выпускаю

ps aux | grep mtp

я получил

Убунту- + 15934 0,1 0,0 519848 7068? Sl 21:13 0:00 / usr / lib / gvfs / gvfsd-mtp --spawner: 1,9 / org / gtk / gvfs / exec_spaw / 20

Таким образом, PID в этом случае - 15934. Но каждый раз, когда это выполняется, PID отличается. Есть ли другой способ убить процесс кроме PID?

Bachalo
источник
Другой PID → другой процесс.
PhK
3
Если PID постоянно меняется, то процесс постоянно завершается, и начинается новый процесс с тем же именем. Таким образом, вы, вероятно, хотите перейти к родительскому процессу, который запускает детей. Посмотрите ps -ely | awk 'NR==1||/mtp/'и посмотрите на колонку PPID
ИКАР
1
Лучшим подходом было бы понять, что на самом деле происходит , и исправить это вместо этого. Узнайте, почему монтирование MTP не работает, проверив логи и т. Д., И исправьте их так, чтобы они действительно работали. Узнайте, почему GVFS даже пытается монтировать MTP, и остановите его от необходимости. Узнайте, где происходит автомонтирование MTP, и выключите его. Узнайте, зачем вообще нужна GVFS, и остановитесь на этом. В отличие от того, чтобы убивать процессы невольно, не понимая, и, как следствие, ломать настольные приложения GNOME.
JdeBP

Ответы:

8

Вероятно, есть родительский процесс, который убивает дочерние процессы и разветвляет новых детей. Вы можете использовать pstree, чтобы найти родительский процесс:

pgrep mtp | xargs -i pstree -ps {}

Или же вы можете использовать опцию ppid ps:

pgrep mtp | while read line; do ps -p $line -o ppid; done

Тогда вы можете убить родительский процесс

Серхат Цевикель
источник
0

Вы можете использовать pkill mtp или kill -9 pidof mtp

Обратите внимание, что если есть несколько процессов mtp, обе эти команды убьют все процессы mtp в системе.

Рами Розен

Рами Розен
источник
5
Это или killall mtpубьет mtp, однако, возможно, существует другой процесс, который постоянно разветвляет новые процессы mtp как дочерние. Без убийства это бесполезно.
Серхат Чевикель
0

Я выпустил

ps aux | grep mtp

который дал мне несколько связанных с MTP процессов и по сравнению с камерой, установленной и размонтированной, чтобы получить конкретный процесс

а потом

pkill -9 gvfsd-mtp

делает трюк.

Но я полагаю, что приведенный выше ответ также будет работать :)

Bachalo
источник