我正在尝试报告Yocto(Poky)中正在运行的进程。 OutputSteam
在这里不起作用,但标准ps aux
调用返回了ps
在Debian中的大部分内容。但它不会报告我的aux
脚本进程。有没有一个论点可以在这里工作,或者我可以尝试另一个电话?提前谢谢。
答案 0 :(得分:2)
您可能正在使用busybox。 Busybox包含自己的ps版本,可能不支持您正在使用的标志。一个简单的ls -l /bin/ps
应该可以指示它是否符号链接到busybox。
我的建议是在您的食谱中包含procps
包(其中包含您更熟悉的ps)。
答案 1 :(得分:2)
Busybox ps
应该会显示您的所有流程。
我已经创建了这个测试脚本pstest.sh
:
#!/bin/sh
while true; do
sleep 10;
done
我一直在运行,包括Debian盒子,基于qemux86的core-image-minimal,以及使用OpenEmbedded / Yocto构建的自定义嵌入式设备。 (即最后一个没有运行Yocto内核)。在所有这些设备上,以下情况都适用:
# ./pstest.sh &
# ps
PID USER VSZ STAT COMMAND
1 root 4196 S {systemd} /sbin/init
2 root 0 SW [kthreadd]
3 root 0 SW [ksoftirqd/0]
5 root 0 SW< [kworker/0:0H]
.....
633 root 2452 S {pstest.sh} /bin/sh ./pstest.sh
634 root 2732 S sleep 10
638 root 3044 R ps
如您所见,我正在查看脚本进程以及sleep命令。 (注意:上面的Debian ps
已替换为busybox ps
)。
如果您仍然只能看到sleep
,可以尝试以下操作:
# cat /proc/`pidof sleep`/status | grep PPid
PPid: 633
通过运行该行,您应该能够看到sleep命令的父PID;检查哪个进程对应。