Linux工作管理

工作管理概述

工作管理指的是在單個(gè)登錄終端中(也就是登錄的shell界面中) 同時(shí)管理多個(gè)工作的行為。windows將工作放入后臺(tái)是最小化即可,linux則需要使用相關(guān)命令操作。

通過(guò)工作管理我們可以將一些需要持續(xù)運(yùn)行的命令或者說(shuō)服務(wù)以及一些可能阻塞當(dāng)前終端操作的命令放在后臺(tái)運(yùn)行或者暫停,然后也可以對(duì)后臺(tái)運(yùn)行的工作進(jìn)行查看,對(duì)暫停的工作進(jìn)行恢復(fù)。

注意事項(xiàng)
  1. 當(dāng)前的登錄終端,只能管理當(dāng)前終端的工作,而不能管理其他登錄終端的工作。當(dāng)然有些服務(wù)除外,比如mysql服務(wù)自己做了優(yōu)化可以脫離終端,即使關(guān)閉當(dāng)前終端,也不會(huì)停止服務(wù)
  2. 放入后臺(tái)的命令必須可以持續(xù)運(yùn)行一段時(shí)間,這樣我們才能撲捉和操作這個(gè)工作
  3. 放入后臺(tái)執(zhí)行的命令不能和前臺(tái)用戶有交互或需要前臺(tái)輸入,否則放入后臺(tái)只能暫停,而不能執(zhí)行
相關(guān)說(shuō)明
  1. 比如像ls、cat命令這種瞬時(shí)運(yùn)行的命令是不允許放入后臺(tái)的命令
  2. 一般諸如打包,復(fù)制大文件,壓縮與解壓縮,搜索命令find都可以放入后臺(tái)執(zhí)行
  3. top命令是為了展示結(jié)果給前端用戶的,而vim命令是需要前臺(tái)輸入的,諸如這些命令運(yùn)行在后臺(tái)
    是沒(méi)有任何意義的。即使通過(guò)命令將它們運(yùn)行在后臺(tái),也是stop狀態(tài)。

工作管理方法

把進(jìn)程放入后臺(tái)

通過(guò) & 符號(hào) 或者 ctrl + z,以tar命令為例:
tar -zcf redis1.tar.gz & #把命令放入后臺(tái),并在后臺(tái)執(zhí)行
tar -zcf redis2.tar.gz #按下ctr+z快捷鍵,放在后臺(tái)暫停

查看后臺(tái)的工作

jobs [-l] # -l代表顯示工作的PID
"+" 號(hào)代表最后一個(gè)放入后臺(tái)的工作,也是工作恢復(fù)時(shí),默認(rèn)恢復(fù)的工作
"-" 號(hào)代表倒數(shù)第二個(gè)放入后臺(tái)的工作,第三個(gè)工作就不會(huì)有符號(hào)顯示
[1] 這里的1代表工作號(hào)

將后臺(tái)暫停的工作恢復(fù)到前臺(tái)執(zhí)行

fg %工作號(hào)
注: %號(hào)可以省略,但是注意工作號(hào)和PID的區(qū)別,不帶參數(shù)默認(rèn)恢復(fù)"+"號(hào)的工作

將后臺(tái)暫停的工作恢復(fù)到前臺(tái)執(zhí)行

bg %工作號(hào)
后臺(tái)恢復(fù)執(zhí)行的命令,是不能和前臺(tái)有交互的,否則不能恢復(fù)到后臺(tái)執(zhí)行,不帶參數(shù)默認(rèn)恢復(fù)"+"號(hào)的工作

后臺(tái)命令脫離終端運(yùn)行

把命令放入后臺(tái),只能在當(dāng)前登錄終端執(zhí)行。一旦退出或關(guān)閉終端,后臺(tái)程序就會(huì)停止。原因是一旦關(guān)閉終端,系統(tǒng)會(huì)默認(rèn)發(fā)出一個(gè)SIGHUP信號(hào),把正在運(yùn)行的后臺(tái)程序給終止掉。其實(shí)可以通過(guò)將程序做成守護(hù)進(jìn)程來(lái)避免終端的影響,但是操作和管理過(guò)于復(fù)雜

脫離終端常用方法
  1. 把需要后臺(tái)執(zhí)行的命令加入 /etc/rc.local 文件(推薦)
  2. 使用系統(tǒng)定時(shí)任務(wù),讓系統(tǒng)在指定的時(shí)間執(zhí)行某個(gè)后臺(tái)命令
  3. 標(biāo)準(zhǔn)方法是使用nohup命令(推薦):nohup [命令] &
舉個(gè)例子
vim for.sh
# 文件內(nèi)容如下
#!/bin/bash
for((i=0;i<=1000;i=i+1)){
    do
        echo 11 >> /root/for.log
        sleep 10s
    done
}
# 保存退出
nohup /root/for.sh &
# 關(guān)閉當(dāng)前終端,重新打開(kāi)一個(gè)終端,查看該進(jìn)程依然存在:ps -aux
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容