在我的远程 Amazon EC2 实例上,我安排了一个 Cron 作业,每小时运行一次程序。该程序运行大约需要 55 分钟,并在启动和停止时向我发送电子邮件。
它一直运行良好,但最近似乎程序突然开始花费更长的时间(“结束电子邮件”在开始电子邮件后超过 55 分钟到达)。这也意味着可能有多个进程同时运行。我想通过查看当前正在运行的所有进程来确认这一点 - 但由于某种原因,当我输入“ps”时,仅显示两个进程:bash 和 ps 命令本身。
知道为什么进程没有在 ps 中显示吗?我怎样才能找到他们?我再次通过 SSH 连接到我的 Amazon EC2 实例 - 不确定这是否会影响显示哪些进程。
非常感谢!
答案1
您必须使用一些标志来显示所有进程,包括在后台启动的进程(root
例如ps aux
,以及grep
您的进程名称)。
-a
:显示有关其他用户进程以及您自己的进程的信息-u
:显示属于指定用户名的进程
查看man ps
更多信息。
答案2
根据其他用户的建议,我需要向 ps 命令添加更多详细信息。最终为我工作的是:
ps -eo pid,comm,cmd,start,etime
这显示了所有进程(-e)并给出了我指定的信息(-o):进程ID(pid),以便我可以终止任务,命令(comm) - 即python,bash等,cmd(程序的完整路径)、开始时间和经过的时间。