PID不断变化时终止进程


9

当我发出

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以外,还有其他方法可以杀死进程吗?


不同的PID→不同的过程。
phk

3
如果PID不断变化,则该过程将不断退出,并且将启动具有相同名称的新过程。因此,您可能想要执行父进程,即启动子进程。看看ps -ely | awk 'NR==1||/mtp/'PPID栏
-icarus

1
更好的方法是了解实际发生的情况,然后修复该问题。通过检查日志等来找出MTP挂载为何不起作用的原因,并对其进行修复以使其真正起作用。找出为什么GVFS甚至尝试进行MTP挂载,并使其停止使用。找出发生MTP自动挂载的位置,然后将其关闭。找出根本不需要GVFS的原因,然后停止这样做。与此相反,在不了解的情况下随意杀死进程并因此破坏了自己的GNOME桌面应用程序。
JdeBP '16

Answers:


8

可能有一个父进程杀死了子进程并派生了新的子进程。您可以使用pstree查找父进程:

pgrep mtp | xargs -i pstree -ps {}

或者,您可以使用ps的ppid选项:

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

然后你可以杀死父进程


0

您可以使用pkill mtp或kill -9 pidof mtp

请注意,如果有多个mtp进程,这两个命令都将杀死系统中的所有mtp进程。

拉米·罗森(Rami Rosen)


5
这或killall mtp将杀死mtp,但是,可能还有另一个进程不断将新的mtp进程作为子进程派生。不杀人,这是没有用的。
Serhat Cevikel '16

0

我发出

ps aux | grep mtp

这给了我一些与mtp相关的过程,并与安装和卸载的摄像头进行了比较以获得特定的过程

然后

pkill -9 gvfsd-mtp

绝招。

但我认为上面的答案也会起作用:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.