工作管理簡介
- 工作管理指的是在單個登錄終端中(也就是登錄的shell界面中)同時管理多個工作的行爲
注意事項
-
當前的登錄終端只能管理當前終端的工作,而不能管理其他登錄終端的工作
-
放入後臺的命令必須可以持續運行一段時間,這樣我們才能捕捉和操作這個工作
-
放入後臺執行的命令不能和前臺用戶有交互或者需要前臺輸入,否則放入後臺只能暫停而不能執行
把進程放入後臺
-
tar -zcf etc.tat.gz /etc &
命令後面加上&
把命令放入到後臺,並在後臺執行 -
top
執行命令按下ctrl +z
快捷鍵,放在後臺暫停;(Ctrl + C
終止命令執行)
查看後臺的工作
-
jobs -[l]
: 選項-l
顯示工作的 PID -
如下圖top命令是用來查看系統的健康狀態的,放入後臺會停止,和用戶有交互的需要輸入的或者需要用戶查看的,都無法在後臺運行
注意:
+
號代表最近一個放入後臺的工作,也是工作恢復時,默認恢復的工作,-
號代表倒數第二個放入後臺的工作;
- 壓縮解壓縮或者find查找是可以放入到後臺的(雖然需要用戶查看結果,但是一旦執行就不需要用戶交互了)
find / -name abc &
從根目錄開始查找 abc字符串, 用jobs 命令查看會經歷 Running ,Done ,再次查看就不在後臺了
將後臺暫停的工作恢復到前臺執行
fg %工作號
,如果直接執行fg
那麼恢復由+號標識的命令恢復到前臺執行- 參數 -%工作號: %可以省略,但是注意工作號和PID的區別;
把後臺暫停的工作恢復到後臺執行
-
bg %工作號
, 如果直接執行bg
那麼恢復由+號標識的命令恢復到後臺執行 -
注意:後臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到後臺執行,只能使用fg命令恢復到前臺執行
- 例如之前執行的
top
命令和vi
編輯命令就不可以放在後臺執行,只能恢復到前臺執行,然後正確操作然後退出即可
- 例如之前執行的
後臺命令脫離終端
-
簡介:把命令放入後臺,只能在當前終端執行,一旦退出或者關閉終端,後臺程序就會停止
- 正常退出終端 logout或者被強制踢出,都會關閉當前終端的後臺程序 ,相當於
kill -l
查看的信號1SIGHUB
- 關閉終端系統發出SIGHUB 信號,終止當前終端後臺任務,重啓重新加載配置
- 正常退出終端 logout或者被強制踢出,都會關閉當前終端的後臺程序 ,相當於
-
/usr/local/mysql/bin/mysqld --user=mysql &
啓動mysql並且在後臺執行,但是該條命令比較特殊不會隨着終端的關閉而停止運行,mysql將其作爲守護進程daemon
啓動 ,相當於服務- 但在實際的系統管理中添加守護進程比較複雜,並且增加了系統管理的難度,不常使用
後臺命令脫離登錄終端執行的方法
- 第一種方法是把需要後臺執行的命令加入
/etc/rc.local
文件,配置自啓動文件,開機自動執行,不需要手動重新啓動- 裏面自帶一句
touch /var/lock/subsys/local
用於記錄系統啓動時間
- 裏面自帶一句
- 第二種方法就是使用系統定時任務,讓系統在指定的時間執行某個後臺命令
- 這種方法不夠穩定,有時候不會生效
- 第三種方法就是使用
nohup
命令;標準方法讓後臺任務脫離當前終端