我們知道,當(dāng)用戶注銷(logout)或者網(wǎng)絡(luò)斷開時(shí),終端會(huì)收到 HUP(hangup)信號從而關(guān)閉其所有子進(jìn)程。因此,我們的解決辦法就有兩種途徑:要么讓進(jìn)程忽略 HUP 信號,要么讓進(jìn)程運(yùn)行在新的會(huì)話里從而成為不屬于此終端的子進(jìn)程。
成都創(chuàng)新互聯(lián)公司主營寧河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),寧河h5小程序開發(fā)搭建,寧河網(wǎng)站營銷推廣歡迎寧河等地區(qū)企業(yè)咨詢
從后臺啟動(dòng)這個(gè)進(jìn)程是比較明智的選擇。從后臺啟動(dòng)進(jìn)程,其實(shí)就是在命令結(jié)尾處添加一個(gè)&符號。輸入命令并運(yùn)行之后,shell會(huì)提供給我們一個(gè)數(shù)字,此數(shù)字就是該進(jìn)程的進(jìn)程號。然后直接就會(huì)出現(xiàn)提示符,用戶就可以繼續(xù)完成其他工作。
進(jìn)程的啟動(dòng)方式: 1)前臺啟動(dòng):用戶輸入命令,直接執(zhí)行程序 2)后臺啟動(dòng):在命令行尾加入“&”符號 要使終端關(guān)閉時(shí)進(jìn)程不退出,有以下幾種情況: 1)用戶進(jìn)程攔截SIGHUP信號。
手工啟動(dòng)。用戶在輸入端發(fā)出命令,直接啟動(dòng)進(jìn)程。分為前臺啟動(dòng)和后臺啟動(dòng)。前臺啟動(dòng):直接在SHELL中輸入命令進(jìn)行啟動(dòng)。后臺啟動(dòng):啟動(dòng)一個(gè)目前并不緊急的進(jìn)程。調(diào)度啟動(dòng)。
讓linux忽略終端的hung up 信號,不關(guān)閉進(jìn)程; 讓此進(jìn)程變?yōu)榻K端的非子進(jìn)程。 方法一: 在終端輸入命令: # ./pso pso.file 2&1 & 解釋:將pso直接放在后臺運(yùn)行,并把終端輸出存放在當(dāng)前目錄下的pso.file文件中。
主要參考 :Linux manual page - sched 自從linux內(nèi)核23以來,默認(rèn)的進(jìn)程調(diào)度器就被設(shè)置為完全公平調(diào)度器(CFS,complete fair scheduler),取代了之前的O(1)調(diào)度器。
進(jìn)程創(chuàng)建后在內(nèi)核的數(shù)據(jù)結(jié)構(gòu)為task_struct , 該結(jié)構(gòu)中有掩碼屬性cpus_allowed,4個(gè)核的CPU可以有4位掩碼,如果CPU開啟超線程,有一個(gè)8位掩碼,進(jìn)程可以運(yùn)行在掩碼位設(shè)置為1的CPU上。
其中發(fā)生在 1 和 4 兩種情況下的調(diào)度稱為「非搶占式調(diào)度」,2 和 3 兩種情況下發(fā)生的調(diào)度稱為「搶占式調(diào)度」。
Linux進(jìn)程調(diào)度采用的是搶占式多任務(wù)處理,所以進(jìn)程之間的掛起和繼續(xù)運(yùn)行無需彼此之間的協(xié)作。
jobs是看工作號的,這似乎太難理解了 = = jobs說白了就是用于顯示當(dāng)前終端關(guān)聯(lián)的后臺任務(wù)情況。相關(guān)操作:命令后面跟上& 用于將命令在后臺執(zhí)行。Ctrl+Z用于將當(dāng)前正在運(yùn)行的前臺進(jìn)程暫停,變成后臺進(jìn)程。
Ctrl+c :終止前臺命令。jobs: 查看當(dāng)前有多少在后臺運(yùn)行的命令。 jobs -l選項(xiàng)可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。
jobs -l選項(xiàng)可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進(jìn)程標(biāo)識。將后臺中的命令調(diào)至 前臺 繼續(xù)運(yùn)行。
該命令用于向某個(gè)工作(%jobnumber)或者是某個(gè)PID(數(shù)字)傳送一個(gè)信號,它通常與ps和jobs命令一起使用,它的基本語法如下:kill -signal PIDsignal的常用參數(shù)如下:注:最前面的數(shù)字為信號的代號,使用時(shí)可以用代號代替相應(yīng)的信號。
alias 對命令重命名 如:alias showmeit=ps -aux ,另外解除使用unaliax showmeit kill 殺死進(jìn)程,可以先用ps 或 top命令查看進(jìn)程的id,然后再用kill命令殺死進(jìn)程。