程序管理 && 工作管理
程序管理
概念
程序program 以二進制程序放置在存儲媒介中(硬盤、光盤、軟盤、磁盤等),以物理文件的形式存在
進程process 程序被觸發後,執行者的權限與屬性、程序的程序代碼與所需數據都被加載到內存中,操作系統會給予這個內存內的一個單元標識符PID。進程,就是運行中的一個程序。
服務daemon 在後臺中一直持續運行的常駐進程稱為服務
fork and exec
fork復制父進程,然後將被復制出來的子進程以exec的方式執行,成為子進程
工作管理
概念
前臺 可以出現提示符,可操作的環境。
後臺 不能與用戶互動,放到終端機的後臺只是不可被[ctrl]+c掉,如果斷開遠程連接,該工作依然會被停止
脫機 即使斷開遠程連接,該工作依然不會停止
命令
&
直接將命令丟到後臺中執行
結束出現如下字眼
[1] + Done tar -zpcf /tmp.etc.tar.gz /etc
例
tar -zpcf /tmp/etc.tar.gz /etc &
tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &
stdout與stderr都輸出到log.txt中
tar
-zpcvf /tmp/etc.tar.gz /etc &> /tmp/log.txt &
stdout與stderr都輸出到log.txt中
[ctrl]+z
將目前的工作房到後臺中暫停
例
vim過程中,在一般模式下[ctrl]+z
find /過程中,[ctrl]+z
jobs
查看目前的後臺工作狀態
job [-lrs]
l 除了列出job number與命令串,同時列出PID
r 僅列出正在後臺run的工作
s 僅列出正在後臺暫停stop的工作
+代表最近被放到後臺的工作號碼,-代表最後第二個被放置到後臺的工作號碼,第三個以後的工作,沒有+/-號
fg
將後臺工作拿到前臺來處理
fg %number
number 為jobs查出的工作號碼,%可有可無
例
fg %1
bg
讓工作在後臺下的狀態由stop變成run
bg %number
number 為jobs查出的工作號碼
kill
管理前臺、後臺、脫機的工作
kill -signal %jobnumber|PID
signal 給予後面的工作一個什麽指令
1 重新讀取一次參數配置文件,類似reload
2 等同於鍵盤[ctrl]+c
9 立刻強制刪除一個工作
15 正常的方式結束
%jobnumber|PID kill一般跟PID,如果是工作管理,則必須有%
killall
依據執行命令的名稱(註:必須與ps aux的command名稱一致)來給予信號管理前臺、後臺、脫機工作
killall [-iIe] -signal [command name]
i 交互式的,如果需要刪除,出現提示符給用戶
I 大寫i,命令名稱忽略大小寫
e exact,後面的command name要一致,但是整個命令不能超過15個字符
例
kill -9 httpd <==不詢問
killall -i -9 bash <==詢問
nohup
脫機或註銷系統後,該工作依然可以運行。類似於at、cron
nohup [命令與參數] <==在終端機前臺中工作
nohup [命令與參數] & <==在終端機後臺中工作
註:nohup並不支持bash內置的命令,因此,命令必須是外部命令
例:
nohup sleep500.sh
nohup ./sleep500.sh &
程序管理 && 工作管理