我正在尝试追踪这个名为的脚本./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