題 ps為什麼ps可以知道之後運行的進程?


[root@myvm1 ~]# ps aux | grep ls
root     13594  0.0  0.1   3912   672 pts/1    R+   09:46   0:00 grep ls

在上面, ps aux 首先運行,然後將其輸出重定向到 grep ls 命令。該 grep ls 命令後運行 ps aux

那麼為什麼呢 ps 了解在它之後運行並在輸出中運行的進程?


2
2018-01-14 10:24


起源


而 grep 在創建之後才能處理任何輸出 grep  處理 可以在之前或之後創建 ps 處理。沒有什麼特別的原因它必須是這樣或那樣的。 - David Schwartz


答案:


在上面, ps aux 首先運行,然後將其輸出重定向到 grep ls 命令。該 grep ls 命令後運行 ps aux

那麼為什麼呢 ps 了解在它之後運行並在輸出中運行的進程?

您正在撰寫有關命令排序的邏輯順序的文章。

如果您在bash程序中獲得了見解,您就會知道命令和管道框架可能按照無關緊要的順序創建。

此外,管道框架很可能是命令輸出重定向。

你的答案是:命令 ps 在將要運行的進程之後實際運行 grep 已經被創造了。


4
2018-01-14 10:28



謝謝。根據您的回答,我找到了另一個更詳細解釋的答案: unix.stackexchange.com/questions/37508/... - bobo