Shell指令碼學習筆記(八)–進程管理和工作控制

來源:互聯網
上載者:User

進程管理和工作控制

ps,top,htop命令的使用

傳送訊號

使用kill命令可以對進程傳送訊號進行管理。管理進程時的基本原則是

1 先禮後兵。先發送訊號給進程,讓進程自己完成該做的事,若進程已不聽指揮,或失去控制,再發出強制性的訊號。這樣的好處是,讓進程在結束前有緩衝的時間做好收尾工作,如清除存檔、鎖定檔案、進程編號記錄檔案等,否則當進程不正常結束時,若在主機中殘留這些檔案,而下次要再執行程式時,可能會出現無法啟動的現象。
2 各得其所。調整進程的優先順序,使得每個進程都得到適當的安排,各項工作能如期完成。進程進入執行排程(schedule)的優先順序,成為nice值。通常nice值介於-20~20之間。nice值越少,優先順序越高。只有root許可權者才能調整介於-20~0的nice值;一般許可權的使用者,只能調整其擁有的進程的nice值在0~20之間.換言之,只有root才能調高進程的優先順序,一般使用者只能降低其進程的優先順序。nice命令和renice命令。nice運用於尚未執行的程式,renice運用在已執行的進程。

nice -n nice值 程式   指定程式執行時的優先順序為某一nice值。-20~19,但只有root可以用-20~0這個區段。若省略-n不指定nice值,則使用預設值10
renice nice值 -p PID -g 群組 -u 使用者名稱   -p -g -u三個選項,可單獨使用也可以組合使用

PRI也是進程優先順序的一種標記法,和nice值(NI)不同的是,PRI永遠以0或正數表示:PRI=NI+20

工作控制

bash的互動模式下,允許使用者暫停某一進程,稍後再恢複執行該進程。這種賦予使用者操控進程的機制,成為工作控制(jobs control)
例子

#!/bin/bash

for ((;1;))
do
sleep 10
done


整理

常用的工作控制命令
& 將指令丟到背景執行
bg 將暫停工作丟到背景 使用ctrl+z按鍵組合暫停進程,然後配合bg命令把工作丟到背景,和執行"指令 &"的效果是一樣的
fg 將暫停工作拉回到前台執行
jobs 列出工作 或jobs -l
disown 移除工作
kill 傳送訊號給進程或工作
wait 等待子進程結束,傳回最後一個命令的執行狀態
suspend 暫停目前的shell。suspend 暫停一個非login的shell,suspend -f 暫停目前的login shell。當暫停shell收到CONT訊號時才會繼續運行。

進程替換

 
進程替換可以讓我們把標準輸出,一次倒給許多進程作為輸入;或者由多個進程取得其輸出,然後倒給某個程式去處理。
進行替換的用法:
1 命令< (指令行)  通過裝置檔案/dev/fd/n或快取檔案,把進程的輸出倒給<左方的命令來讀取
2 > (指令行)  這是通過裝置檔案/dev/fd/n或緩衝盤,把資料提供給()中的進程去讀取

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.