亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

Linux作業控制匯總

2023-06-28 07:44:06
61
0

前言

我們在工作時,經常試使用SSH連接到遠程主機。這有個令人煩惱的問題,即一旦SSH連接中斷,運行的長時任務也會被終止。我們希望有一種機制, 可以讓任務在后臺運行,然后我們可以斷開SSH連接。等一段時間后,我們再次使用SSH連接遠程主機,并查看之前運行的長時任務的運行情況。筆者從互聯網收集整理了一系列方法實現以上目的。

Linux進程體系介紹

  • linux啟動的第一個進程是0號進程,是靜態創建的

  • 在0號進程啟動后會接連創建兩個進程,分別是1號進程和2和進程。

  • 1號進程最終會去調用可init可執行文件,init進程最終會去創建所有的應用進程。

  • 2號進程會在內核中負責創建所有的內核線程

  • 所以說0號進程是1號和2號進程的父進程;1號進程是所有用戶態進程的父進程;2號進程是所有內核線程的父進程。

Ctl+z/jobs/fg/bg

1、創建一個進程,然后使用Ctl+z,讓它掛起(停止運行)。掛起的進程會讓出控制臺。可以使用jobs命令查看這個進程。

2、可以使用bg %[num]讓他在后臺繼續運行。也可以使用fg %[num]讓它在前臺運行。

注意,不帶%使用fg、bg,針對的是左后操作的進程。

3、千萬注意: 無論怎么折騰,當當前shell退出后,這個程序會被殺掉。

4、注意:如果沒有在進程后面加重定向 > filename 2>&1,轉入后臺的進程還是會將輸出打印到屏幕上。

nohup

1、上面提到,當Shell退出后,shell啟動的后臺進程會被殺掉。原因是,這些進程是Shell的子進程。Shell退出時,會給所有子進程發送SIGHUP信號。

2、nohup就是讓提交的命令忽略 hangup 信號。nohup 的使用是十分方便的,只需在要處理的命令前加上 nohup 即可,標準輸出和標準錯誤缺省會被重定向到 nohup.out 文件中。一般我們可在結尾加上”&”來將命令同時放入后臺運行,也可用”>filename 2>&1″來更改缺省的重定向文件名。

3、注意:這個方式僅僅是屏蔽了SIGHUP信號,并沒有改變進程的隸屬關系。不過當Shell退出后,這個進程被1號進程接管。

disown

有時候,運行程序的時候忘記了加nohup,跑了很長時間想起來了為時已晚。其實不晚。可以使用disown命令:

  1. 先使用Ctl+z將進程掛起,
  2. 然后使用bg %[num]將進程放入后臺運行
  3. 然后執行: disown -h %[num]  這樣,就可以放心地退出了。

TIPS:

  • disown -h jobspec   來使某個作業忽略HUP信號。
  • disown -ah               來使所有的作業都忽略HUP信號。
  • disown -rh                來使正在運行的作業忽略HUP信號。

Screen

參考鏈接://blog.csdn.net/weixin_31510897/article/details/116859308

1、首先先執行screen -S <name>    ,創建一個Screen并取一個名字

2、執行長期任務

3、做你想做的其他事情

4、回來后,發現shell斷掉了,沒關系

5、運行screen -r [id|name], 就可以恢復。

6、在第2步完成后,也可以按Ctl+a+d主動斷開連接。

0條評論
0 / 1000
李****一
10文章數
2粉絲數
李****一
10 文章 | 2 粉絲
李****一
10文章數
2粉絲數
李****一
10 文章 | 2 粉絲
原創

Linux作業控制匯總

2023-06-28 07:44:06
61
0

前言

我們在工作時,經常試使用SSH連接到遠程主機。這有個令人煩惱的問題,即一旦SSH連接中斷,運行的長時任務也會被終止。我們希望有一種機制, 可以讓任務在后臺運行,然后我們可以斷開SSH連接。等一段時間后,我們再次使用SSH連接遠程主機,并查看之前運行的長時任務的運行情況。筆者從互聯網收集整理了一系列方法實現以上目的。

Linux進程體系介紹

  • linux啟動的第一個進程是0號進程,是靜態創建的

  • 在0號進程啟動后會接連創建兩個進程,分別是1號進程和2和進程。

  • 1號進程最終會去調用可init可執行文件,init進程最終會去創建所有的應用進程。

  • 2號進程會在內核中負責創建所有的內核線程

  • 所以說0號進程是1號和2號進程的父進程;1號進程是所有用戶態進程的父進程;2號進程是所有內核線程的父進程。

Ctl+z/jobs/fg/bg

1、創建一個進程,然后使用Ctl+z,讓它掛起(停止運行)。掛起的進程會讓出控制臺。可以使用jobs命令查看這個進程。

2、可以使用bg %[num]讓他在后臺繼續運行。也可以使用fg %[num]讓它在前臺運行。

注意,不帶%使用fg、bg,針對的是左后操作的進程。

3、千萬注意: 無論怎么折騰,當當前shell退出后,這個程序會被殺掉。

4、注意:如果沒有在進程后面加重定向 > filename 2>&1,轉入后臺的進程還是會將輸出打印到屏幕上。

nohup

1、上面提到,當Shell退出后,shell啟動的后臺進程會被殺掉。原因是,這些進程是Shell的子進程。Shell退出時,會給所有子進程發送SIGHUP信號。

2、nohup就是讓提交的命令忽略 hangup 信號。nohup 的使用是十分方便的,只需在要處理的命令前加上 nohup 即可,標準輸出和標準錯誤缺省會被重定向到 nohup.out 文件中。一般我們可在結尾加上”&”來將命令同時放入后臺運行,也可用”>filename 2>&1″來更改缺省的重定向文件名。

3、注意:這個方式僅僅是屏蔽了SIGHUP信號,并沒有改變進程的隸屬關系。不過當Shell退出后,這個進程被1號進程接管。

disown

有時候,運行程序的時候忘記了加nohup,跑了很長時間想起來了為時已晚。其實不晚。可以使用disown命令:

  1. 先使用Ctl+z將進程掛起,
  2. 然后使用bg %[num]將進程放入后臺運行
  3. 然后執行: disown -h %[num]  這樣,就可以放心地退出了。

TIPS:

  • disown -h jobspec   來使某個作業忽略HUP信號。
  • disown -ah               來使所有的作業都忽略HUP信號。
  • disown -rh                來使正在運行的作業忽略HUP信號。

Screen

參考鏈接://blog.csdn.net/weixin_31510897/article/details/116859308

1、首先先執行screen -S <name>    ,創建一個Screen并取一個名字

2、執行長期任務

3、做你想做的其他事情

4、回來后,發現shell斷掉了,沒關系

5、運行screen -r [id|name], 就可以恢復。

6、在第2步完成后,也可以按Ctl+a+d主動斷開連接。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0