Process
為什麼執行 sudo cp 顯示兩個程序
我正在嘗試在 CentOS 機器上複製一些文件和文件夾。
我這樣做:
sudo cp source destination &
在後台執行它。我看到現在執行時有三個
cp
程序ps aux | grep cp
:其中一個是grep
命令本身,但另外兩個是上述cp
命令的副本:一個帶有上面列出的整個命令,另一個沒有sudo
前面列出的命令。兩個程序的 PID 也相差 1。兩者的所有者都被列為 root。為什麼會有兩個過程?
這兩個過程是
sudo
一方面,另一方面cp
。當你跑sudo cp source destination &
shell
sudo
以完整的命令行開頭;然後sudo
(root
因為它是 setuid執行root
)檢查您是否被允許這樣執行cp
,然後分叉和開始cp
。因此,cp
在執行時,您會同時看到sudo
和cp
程序。