也就是說,在操作系統中,所有可以執行的程序與命令都會產生進程。只是有些程序和命令非常簡單,如 ls 命令、touch 命令等,它們在執行完后就會結束,相應的進程也就會終結,所以我們很難捕捉到這些進程。但是還有一些程和命令,比如 httpd 進程,啟動之后就會一直駐留在系統當中,我們把這樣的進程稱作常駐內存進程。
某些進程會產生一些新的進程,我們把這些進程稱作子進程,而把這個進程本身稱作父進程。比如,我們必須正常登錄到 shell 環境中才能執行系統命令,而 Linux 的標準 Shell 是 bash。我們在 bash 當中執行了 ls 命令,那么 bash 就是父進程,而 ls 命令是在 bash 進程中產生的進程,所以 ls 進程是 bash 進程的子進程。也就是說,子進程是依賴父進程而產生的,如果父進程不存在,那么子進程也不存在了。
進程管理的作用
在使用 Windows 系統的過程中,使用任務管理器,很大程度上是為了強制關閉“未反應”的軟件,也就是殺死進程。的確,這是很多使用進程管理工具或進程管理命令的人最常見的使用方法。不過,殺死進程(強制中止進程)只是進程管理工作中最不常用的手段,因為每個進程都有自己正確的結束方法,而殺死進程是在正常方法已經失效的情況下的后備手段。