确定哪个服务正在运行脚本

确定哪个服务正在运行脚本

我与一些同事共享一个开发服务器,它是一个 Ubuntu 服务器,我们在那里有几个脚本,所以基本上我们运行进程的常用方式是使用会话screen。我的问题是,当我这样做时ps aux| grep python,我看到一个正在运行的进程:

root     x  x  x x x x  Ss   Apr12  29:58 /usr/bin/python /home/script.py

该脚本不是在屏幕会话上运行,它在被杀死时会自动启动,所以我需要知道哪个服务正在启动/重新启动该进程。任何帮助表示赞赏。

答案1

您可以使用 pstree 获取所有进程及其父进程的树视图。在下面的示例中,我将获取pulseaudio的父进程,其PID为1913:

$ pstree -sU 1913   
systemd───pulseaudio─┬─{alsa-sink-ALC88}
                     └─{alsa-source-ALC}

在你的情况下,我会使用 pgrep 加 pstree,如下所示:

pstree -sU $(pgrep /home/script.py)

请注意,如果脚本父级被杀死,则其父级很可能会被初始化。在这种情况下,您将需要一种更积极的方式来获取父进程。

相关内容