Linux 暂停进程
可以在進程運行期間暫停進程,而無需終止它。盡管有時這可能會比較危險(比如,腳本打開了一個關鍵的系統文件的文件鎖),但通常它可以在不終止進程的情況下使你能夠深入腳本內部一窺究竟。
Ctrl+Z組合鍵會生成一個SIGTSTP信號,停止shell中運行的任何進程。停止(stopping)進程跟終止(terminating)進程不同:停止進程會讓程序繼續保留在內存中,并能從上次停止的位置繼續運行。在16.4節中,你會了解如何重啟一個已經停止的進程。
當用Ctrl+Z組合鍵時,進程被停止。
方括號中的數字是shell分配的作業號(job number)。shell將shell中運行的每個進程稱為作業,并為每個作業分配唯一的作業號。它會給第一個作業分配作業號1,第二個作業號2,以此類推。如果shell會話中有一個已停止的作業,在退出shell時,bash會提醒你。
$ sleep 100 ^Z [1]+ Stopped sleep 100 $ exit exit There are stopped jobs. $可以用ps命令來查看已停止的作業。
$ sleep 100 ^Z [1]+ Stopped sleep 100 $ $ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 501 2431 2430 0 80 0 - 27118 wait pts/0 00:00:00 bash 0 T 501 2456 2431 0 80 0 - 25227 signal pts/0 00:00:00 sleep 0 R 501 2458 2431 0 80 0 - 27034 - pts/0 00:00:00 ps $在S列中(進程狀態),ps命令將已停止作業的狀態為顯示為T。這說明命令要么被跟蹤,要么被停止了。
如果在有已停止作業存在的情況下,你仍舊想退出shell,只要再輸入一遍exit命令就行了。
shell會退出,終止已停止作業。或者,既然你已經知道了已停止作業的PID,就可以用kill命令來發送一個SIGKILL信號來終止它。
在終止作業時,最開始不會得到任何回應。但下次如果你做了能夠產生shell提示符的操作(比如按回車鍵),就會看到一條消息,顯示作業已經被終止了。每當shell產生一個提示符時,它就會顯示shell中狀態發生改變的作業的狀態。在終止一個作業后,下次強制shell生成一個提示符時,shell會顯示一條消息,說明作業在運行時被終止了。
總結
以上是生活随笔為你收集整理的Linux 暂停进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于java的在线考试系统设计(含源文件
- 下一篇: linux关机重启机器人,Linux S