我安装了 Google Desktop for Linux,并想阻止它运行,但不必删除其所有文件。我设法在 中找到并禁用了该文件/etc/cron.hourly
,但gdl_box
它仍由进程 1 启动:
1 5199 5199 5199 ? -1 Ss 32074 0:01 /opt/google/desktop/bin/gdl_box
gdl
我已经在 下的每个文件中进行了 grep 搜索/etc
,但未发现任何可疑文件。目录/etc/init.d
中似乎没有任何文件/etc/rc*.d
。我如何找到并杀死这个邪恶的守护进程?更确切地说,我如何找出导致它生成的原因并从一开始就阻止它生成?
我已经gdl_box
多次关闭了它,但没有重新启动或 X 重新启动,某物系统中不断重生该问题。我想找出原因并阻止它。
编辑
好的,最终我gdl_box
用一个可以运行的二进制文件替换了它ps afwj
,这样我就可以知道在它被采用之前是谁启动了它init
。想象一下,当我发现它是从我的启动时我有多尴尬.profile
。我仍然想知道发现这个问题的更好方法,但我接受了指出采用的答案init
(感谢托马斯),这至少让我避免了在错误的灯柱下寻找。
答案1
我假设您显示的 ps 输出中的第一列是父进程 pid (PPID)。如果是这样,它可能不是由 init 生成的(如果这是让您相信这一点的原因),但在正常的 unix 守护进程样式中,它会双重分叉,这会导致它获得父进程 pid 1。它是一个孤儿进程,init 收养了它。
你怎么才能找到并杀死它?呃……它就在那里,你为什么没找到呢?
答案2
Google 桌面是从以下位置启动的(至少在我的 RHEL5 系统上):
/etc/xdg/autostart/gdl_box.desktop
答案3
的某些版本ps
支持--forest
或f
标志来显示进程之间的关系树。如果您的版本没有该标志,请检查pstree
,这是一个独立的软件包,可以执行相同的操作。在这种情况下,它可以提供帮助。
答案4
那么跑步呢
查找 /var/spool/cron -type f | xargs grep gdl
或者可能有一个脚本正在加载 gdl_box,但该脚本实际上并未调用 gdl 本身,这就是为什么 grep 没有显示任何内容的原因。