好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 淺析Linux中使用nohup及screen運行后臺任務的示例和區別

淺析Linux中使用nohup及screen運行后臺任務的示例和區別

熱門標簽:咸陽穩定外呼系統公司 電銷機器人怎么錄音 征服者快捷酒店地圖標注 貴陽語音電銷機器人 蕪湖呼叫中心外呼系統哪家強 貴港市機器人外呼系統團隊 漯河電銷外呼系統價格 ec外呼系統怎么樣 天津外呼系統運營商

使用SSH終端(比如putty,xshell)連接Linux服務器上運行比較耗時任務,可能需要幾個小時甚至幾天才能完成,這時候終端被占據,我們還要做其他的任務呢,所以需要將這一類耗時任務放到后臺來跑,只需要記錄好日志就行了,有下面這些常用方法來實現這個需求。

command &

在終端輸入command &運行,這時候使用Ctrl + C中止命令將會失效,因為對&后臺運行SIGINT1信號免疫,程序會繼續運行。 但如果你直接關掉終端, 進程將跟著中止。 可見,使用&后臺運行的進程會被SIGHUP2信號中止,但是你如果用exit命令正常退出終端,程序將繼續運行在后臺不會中止。

nohup command

標準輸出會被默認追加到當前目錄下的nohup.out中,如果當前目錄的nohup.out文件不可寫,輸出重定向到 $HOME/nohup.out文件中。

那么,我們很容易想到將這兩個特性綜合一下這樣運行命令:

nohup command > /home/user/myfile.log 2>&1 &

這樣將會在后臺一直執行這個任務直到完成,并將程序標準輸出(1)標準錯誤(2)都定向到/home/user/myfile.log文件中。

screen工具

screen可以理解為一個會話窗口管理工具,對于一般的使用,我們只需要會使用下面在這些操作即可:

# 使用yum安裝screen
yum install screen
# 創建一個名為test的會話窗口
screen -S test
# 暫離窗口
Ctrl+a d(即按住Ctrl,依次再按a,d)
# 查看存在的會話窗口
screen -ls
# 進入窗口
screen -r test
screen -r 進程ID
# 關閉窗口
exit
# 窗口切換
Ctrl+a c :在當前screen會話中創建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一個窗口
Ctrl+a p :上一個窗口
Ctrl+a 0-9 :在第0個窗口和第9個窗口之間切換

有了在screen工具,我們就可以在終端上創建窗口,然后運行需要的命令,然后暫離,然后就可以繼續做其他的事情了,當然,也可以用其他的終端連接服務器后使用screen -r 命令連接需要的窗口,會發現程序一直在運行,退出終端也不會影響到那些暫離的終端上運行的程序。

測試:

我們寫一個測試腳本test.sh:

#!/bin/sh
for ((i=1; i<1000; i++))
do
  d=`date '+%Y-%m-%d %H:%M:%S'`
  echo "$d 第 $i 次輸出;"
  tt
  sleep 2s
done
Bash

只使用&后臺運行:

[root@localhost test.cc]# ./test.sh > test.log 2>&1 &
[1] 15037
[root@localhost test.cc]# ps -aux | grep test.sh
root   15037 0.0 0.0 113180 1424 pts/0  S  16:10  0:00 /bin/sh ./test.sh
root   15045 0.0 0.0 112712  992 pts/0  S+  16:10  0:00 grep --color=auto test.sh
Bash

可以看到15037進程在運行;

如果直接關閉終端,日志記錄就停止了,說明進程隨著終端會話的結束而停止執行了;

但是,經過反復測試發現,如果使用exit命令正常退出終端,再連上終端后,使用&運行的程序繼續在運行,也就是&命令跟nohup效果是一樣的,我這里使用的測試環境是CentOS7.6。

使用nohup &運行

[root@localhost test.cc]# nohup ./test.sh > test.log 2>&1 &
[1] 14349

測試結果,直接關閉終端或者使用exit命令退出終端,程序都會繼續執行。

使用screen運行

# 創建窗口
screen -S test
# 運行命令,這里可以不用后面的&,只是程序會把窗口占用
./test.sh > test.log 2>&1 &
# 暫離
Ctrl + a d

這時候可以直接關閉終端了,然后重新連接,發現程序依然在運行,如果要找到窗口連接:

# 存在的窗口
[root@localhost ~]# screen -ls
There is a screen on:
  18048.test (Detached)
1 Socket in /var/run/screen/S-root.
# 進入窗口
[root@localhost ~]# screen -r test

進入之后會發現,窗口依然保持著暫離之前的狀態,包括之前輸入的程序和命令,當你在窗口中輸入exit命令退出窗口,如果你前面命令后面沒有使用&,程序將會中止,因為相對于test窗口來說,這是一個前臺程序,窗口退出了程序自然就跟著中止了。

因為screen的暫離功能,可以實現暫離窗口中保持前臺程序的繼續運行,相對于真正的終端而言,就相當于后臺運行了。

程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl-C)時發出,用于通知前臺進程組終止進程 ↩︎

終端連接結束時發出, 通常是關閉終端, 通知同一session內的各個進程組 ↩︎

總結

以上所述是小編給大家介紹的淺析Linux中使用nohup及screen運行后臺任務的示例和區別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:東營 西藏 香港 濰坊 怒江 淮北 攀枝花 西寧

巨人網絡通訊聲明:本文標題《淺析Linux中使用nohup及screen運行后臺任務的示例和區別》,本文關鍵詞  淺析,Linux,中,使用,nohup,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析Linux中使用nohup及screen運行后臺任務的示例和區別》相關的同類信息!
  • 本頁收集關于淺析Linux中使用nohup及screen運行后臺任務的示例和區別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 操处女逼小说| 高清亚洲综合色成在线播放放| 高潮大量喷潮videos| 视频一区色眯眯视频在线| 91人妻女友久久精品一区| 台湾黄三级高清在线观看播放| 偷窥×洗澡×撒尿xXx偷拍| 女同桌让我憋尿揉我裆部| 国产一级大片| 双男主纯肉小黄文H| 欧美黑人激情乱妇| 在线色综合| 四季常藍,百搭樹種| 巜入室强伦女教师在线播放| 人狗合体| 强行挺进朋友漂亮的娇妻| 性的小视频在线观看免费| 91精品一久久香蕉国产线观看新通道| 欧美手机手机在线视频一区| 午夜视频在线免费看| 综合色伊人久久一区二区| 用力别停受不了的小说| 攻把受从小睡到大H1V1| 一级做a爱片特黄在线观看| 国产精品宾馆在线精品酒店| 日本无码免费Av在线观看司葵| 10款夜间禁用短视频软件| mmd18?18禁18r网站| 一本色道久久综合狠狠躁小说| 久久久精品影院| 91久久久久久精品| 亲子伦视频一区二区三区| 巜社长与人妻秘书HD在线| 亚洲成人h| 男人的j进女人的p视频| 免费?无码?国产在线53| 99久久精品免费看国产小宝寻花| 国产下药迷倒白嫩丰满美女j8| 精品三级久久久久电影网| 亚洲精品国产精品国自产观看浪潮 | 国产日韩欧美一区二区|