Убивать процесс, когда ПИД постоянно меняется

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

ps aux | grep mtp 

я получил

ubuntu- + 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?

  • Исправлена ​​ошибка «firefox уже запущена» в Linux
  • Получить возвращаемое значение процесса с помощью PID
  • Почему я не мог убить процесс NOHUP?
  • kill -9 не работает из скрипта bash, но работает в консоли
  • Как (если возможно) я могу закончить конкретный блокиратор, зависающий программой?
  • Остановка заданий с помощью PID?
  • Отфильтровывать и убивать не-докерные процессы
  • Управление процессами и pkill
  • 3 Solutions collect form web for “Убивать процесс, когда ПИД постоянно меняется”

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

     pgrep mtp | xargs -i pstree -ps {} 

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

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

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

    Я издал

     ps aux | grep mtp 

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

    а потом

     pkill -9 gvfsd-mtp 

    делает трюк.

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

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

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

    Рами Розен

    Linux и Unix - лучшая ОС в мире.