我怎样才能找出导致 init(8) 启动进程的原因?

我怎样才能找出导致 init(8) 启动进程的原因?

我安装了 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支持--forestf标志来显示进程之间的关系树。如果您的版本没有该标志,请检查pstree,这是一个独立的软件包,可以执行相同的操作。在这种情况下,它可以提供帮助。

答案4

那么跑步呢

查找 /var/spool/cron -type f | xargs grep gdl

或者可能有一个脚本正在加载 gdl_box,但该脚本实际上并未调用 gdl 本身,这就是为什么 grep 没有显示任何内容的原因。

相关内容