linux中fg jobs ctrl-z bg操作和kill-15、kill-9杀死进程
Linux 提供了 fg 和 bg 命令,讓我們輕松調度正在運行的任務。
假設你發現前臺運行的一個程序需要很長的時間,但是需要干其他的事情,你就可以用 Ctrl-Z ,掛起這個程序,然后可以看到系統提示(方括號中的是作業號):
概念:當前任務
如果后臺的任務號有2個,[1],[2];如果當第一個后臺任務順利執行完畢,第二個后臺任務還在執行中時,當前任務便會自動變成后臺任務號碼“[2]” 的后臺任務。所以可以得出一點,即當前任務是會變動的。當用戶輸入“fg”、“bg”和“stop”等命令時,如果不加任何引號,則所變動的均是當前任務 就是前面有+的任務就是當前任務。
一 以下是常見命令
- &
這個用在一個命令的最后,可以把這個命令放到后臺執行
- . ctrl + z
可以將一個正在前臺執行的命令放到后臺,并且暫停
- jobs
查看當前有多少在后臺運行的命令
- jobs -l 顯示進程號
- fg
將后臺中的命令調至前臺繼續運行
如果后臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
1如果只輸入fg默認將+的進程調到前臺
2 fg %工作號
- bg
將一個在后臺暫停的命令,變成繼續執行
如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
可以看到用了 bg %1
nano ccc.txt 前面有了+
原來+是在nano xxx.txt
使用fg 默認打開nano ccc.txt
ctrl+z(掛起)、ctrl+c(中斷)、ctrl+\(退出)和ctrl+d(EOF)的區別
1、四種操作的表現
ctrl+c強行中斷當前程序的執行。比如啟動django服務后 中斷啟用 就用ctrl+c
ctrl+z將任務中斷,但是此任務并沒有結束,他仍然在進程中,只是放到后臺并維持掛起的狀態。如需其在后臺繼續運行,需用“bg 工作號”使其繼續運行;再用"fg 工作號"可將后臺進程前臺化。
**ctrl+**表示退出。
ctrl+d表示結束當前輸入(即用戶不再給當前程序發出指令),那么Linux通常將結束當前程序。 相當于logout 斷開與服務器的連接
2、ctrl+c,ctrl+d,ctrl+z在linux中意義。
linux下:
- ctrl-c 發送 SIGINT 信號給前臺進程組中的所有進程。常用于終止正在運行的程序。
- ctrl-z 發送 SIGTSTP 信號給前臺進程組中的所有進程,常用于掛起一個進程。 ctrl +
z可以將一個正在前臺執行的命令放到后臺,并且處于暫停狀態,不可執行 - ctrl-d 不是發送信號,而是表示一個特殊的二進制值,表示 EOF。
- ctrl-\ 發送 SIGQUIT 信號給前臺進程組中的所有進程,終止前臺進程并生成 core 文件。
二、進程的終止 kill
kill -9 進程號
kill -9 %工作號
三 kill-9和kill-15的區別
參考https://cloud.tencent.com/developer/article/1444003
kill -15 pid(默認)
執行完該指令后,操作系統會發送一個 SIGTERM 信號給對應的程序。當程序接收到該信號后,可能會發生以下幾種情況的一種:
- 當前程序立刻停止;
- 程序釋放相應資源,然后再停止;
- 程序可能仍然繼續運行
大部分程序會先釋放自己的資源,然后再停止。但是也有程序可以在接受到信號量后,繼續做其他一些事情,并且這些事情是可以配置的。如果程序正在等待IO,可能就不會立馬做出響應。也就是說,15) SIGTERM 是可能被阻塞、被忽略的。
kill -9 pid
如果 15) SIGTERM 可以不進行響應?那 9) SIGKILL就是必殺信號,多半 ROOT 會直接使用這個命令,但并不推薦這么做。
小結:在使用 kill -9 前,應該先使用 kill -15,給目標進程一個清理善后工作的機會。如果沒有,可能會留下一些不完整的文件或狀態,從而影響服務的再次啟動。
總結
以上是生活随笔為你收集整理的linux中fg jobs ctrl-z bg操作和kill-15、kill-9杀死进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu nano的使用 nano的
- 下一篇: linux中ps aux和ps -ef下