什么决定了 ps aux 中的进程名称?

什么决定了 ps aux 中的进程名称?

我正在尝试追踪这个名为的脚本./launch.sh,该脚本在我的计算机上当前处于无限循环中,其中它调用一个 Java 程序,立即崩溃,然后休眠 3 秒。

ps aux包括:

   31337  0.1  0.1  19716  2180 pts/3    S+   15:13   0:00 bash   
root     31621  0.3  0.3  22912  5492 pts/4    Ss+  15:15   0:00 -bash
root     31810  0.0  0.0   5872   604 pts/1    S+   15:16   0:00 sleep 3
root     31811  0.0  0.0  16872  1268 pts/2    R+   15:16   0:00 ps aux

以及许多-bash

我的启动脚本是通过 调用的./launch.sh。此脚本不是以 shebang 开头的。

Linux版本如下:

Linux version 3.2.0-23-virtual (buildd@crested) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP 

所以基本上想知道为什么launch.sh它没有出现在 中ps aux,或者是否有办法在进程列表中更轻松地找到它。我花了一段时间才意识到我只是让它在前台某处运行。

答案1

以如下方式调用的脚本./launch.sh将显示为狂欢(或者无论您的默认 shell 是什么)在 ps 的输出中。

要找出与你的脚本关联的 PID,你可以使用lsof,列出了打开该文件的进程。

示例输出:

$ lsof launch.sh 
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
bash    17085 dennis  254r   REG    8,1       28 2500332 launch.sh
$
$ ps up 17085
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dennis   17085  0.0  0.1  28292  4260 pts/2    S+   11:28   0:00 bash

相关内容