linux中兩種不同的進程啟動方式是:1、手動啟動進程,指的是由使用者輸入命令直接啟動一個進程,根據所啟動的進程類型和性質的不同,可以細分為前台啟動和背景啟動兩種方式;2、調度啟動進程,指的是任務可以被配置在指定的時間、日期或系統平均負載量低於指定值時自動啟動。
本教學操作環境:linux7.3系統、Dell G3電腦。
總體來說,啟動一個進程主要有2 種途徑,分別是透過手動啟動和透過調度啟動(事先進行設置,根據使用者要求,進程可以自行啟動),接下來就一一介紹這2 中方式。
Linux手動啟動進程
# 手動啟動進程指的是由使用者輸入命令直接啟動一個進程,根據所啟動的進程類型和性質的不同,其可細分為前台啟動和後台啟動2 種方式。
前台啟動進程
這是手動啟動進程最常用的方式,因為當使用者輸入一個命令並運行,就已經啟動了一個進程,而且是一個前台的進程,此時系統其實已經處於一個多進程的狀態(一個是Shell 進程,另一個是新啟動的進程)。
實際上,系統自動時就有許多進程悄悄地在後台運行,不過這裡為了方便讀者理解,並沒有將這些進程包括在內。
假如啟動一個比較耗時的進程,然後再把該進程掛起,並使用ps 指令查看,就會看到該進程在ps 顯示列表中,例如:
[root@localhost ~]# find / -name demo.jpg <--在根目录下查找 demo.jpg 文件,比较耗时 #此处省略了该命令的部分输出信息 #按“CTRL+Z”组合键,即可将该进程挂起 [root@localhost ~]# ps <--查看正在运行的进程 PID TTY TIME CMD 2573 pts/0 00:00:00 bash 2587 pts/0 00:00:01 find 2588 pts/0 00:00:00 ps
將進程掛起,指的是將前台運行的進程放到後台,並且暫停其運行,有關掛起進程和ps 命令用法,後續章節會做詳細介紹。
透過執行 ps 指令查看進程訊息,可以看到,剛剛執行的 find 指令的進程號為 2587,同時 ps 進程的進程編號為 2588。
後台啟動進程
進程直接從後台運行,用的相對較少,除非該進程非常耗時,且用戶也不急於其運行結果的時候,例如,使用者需要啟動一個需要長時間運行的格式化文字檔案的進程,為了不讓整個Shell 在格式化過程中都處於「被佔用」狀態,從後台啟動這個進程是比較明智的選擇。
從後台啟動進程,其實就是在指令結尾處加上一個 " &" 符號(注意,& 前面有空格)。輸入指令並執行之後,Shell 會提供給我們一個數字,此數字就是該行程的進程號。然後直接就會出現提示符,使用者就可以繼續完成其他工作,例如:
[root@localhost ~]# find / -name install.log & [1] 1920 #[1]是工作号,1920是进程号
以上介紹了手動啟動的2 種方式,實際上它們有個共同的特點,就是新進程都是由目前Shell 這個進程產生的,換句話說,是Shell 創建了新進程,於是稱這種關係為進程間的父子關係,其中Shell 是父進程,新進程是子進程。
值得一提的是,一個父進程可以有多個子進程,通常子進程結束後才能繼續父進程;當然,如果是從後台啟動,父進程就不用等待子進程了。
Linux調度啟動程序
在Linux 系統中,任務可以被設定在指定的時間、日期或系統平均負載量低於指定值時自動啟動。
例如,Linux 預先配置了重要係統任務的運行,以便可以使系統能夠即時被更新,系統管理員也可以使用自動化的任務來定期對重要資料進行備份。
推薦學習:Linux影片教學
#以上是linux兩種不同的進程啟動方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!