版本:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
当我使用 htop 或 ps aux 检查我的进程时,我在第一个管道之后看不到命令的其余部分
我运行的命令是:
ping -i 0.5 4.2.2.4 | while read row; do awk '{ $1=strftime("%Y-%m-%d %H:%M:%S",substr($0,2,10));print $0}' <<< $row;done | grep 'no answer' | tee log.txt > log_store.txt
ps aux 输出为:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar20 ? 00:00:00 /lib/systemd/systemd
root 23 1 0 Mar20 ? 00:00:01 /lib/systemd/systemd-journald
root 25 1 0 Mar20 ? 00:00:00 /usr/sbin/cron -f
root 28 1 0 Mar20 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root 31 30 0 Mar20 ? 00:00:24 ping -i 0.5 4.2.2.4 <--------------
可以看出,只显示了第一个管道的 ping 部分,有没有办法以某种方式查看其余部分?
答案1
您已经通过管道连接ping
到 3 个后续进程(awk
、grep
和tee
),这些进程应该出现在ps aux
的输出中的某个位置。
请注意,bash 语法(在本例中为
while
循环)不会出现在ps
的输出中,因为它是 bash 的内部语法。ps -ef -H
(-H
如 Hierachy)可能是比ps aux
.