10.35 screen工具

screen工具

  • 爲了避免讓一個任務意外中斷
  • nohup command &
  • screen是一個虛擬終端
  • yum install -y screen
  • screen直接回車就進入了虛擬終端
  • ctral a組合鍵再按d退出虛擬終端,但不是結束
  • screen -ls 查看虛擬終端列表
  • screen -r id 進入指定的終端
  • screen -S aming
  • screen -r aming

screen

  • screen,虛擬的一個屏幕,也能夠理解爲一個虛擬的終端session

  • 需求,執行一個腳本,須要一天一晚上,並且腳本會輸出一些東西出來,這就意味着這個腳本不能中途斷開,保證腳本不中斷,有兩種方法:工具

    • 方法一:把這個任務丟到後臺去,而後加一個日誌的輸出
      • 命令nohup command &——>nohup 加執行命令 加日誌 再加一個&符號
      • 這時即便你的終端斷開,依舊會在後臺執行——>但雖然解決了任務中斷的問題,可是沒有辦法實時查看輸出的內容
    • 方法二:screen工具,能夠把要執行的命令,放到這個終端裏,而後在退出pts/0以前,能夠把screen丟到後臺去,隨時用, 隨時查看
  • 安裝screen包——>yum install -y screen日誌

    • 在安裝完成後,直接敲screen命令,回車,會進入到screen,進入到一個窗口,這個窗口就是一個虛擬終端
    • 在虛擬終端,執行vmstat 1命令,而後 ctrl+a鍵 同時按,隨後再按 d鍵 ,就把screen丟到後臺了
    • 執行screen ls 命令,列出當前全部的session
    • 執行screen -r 再加查看到的id 命令,再回到虛擬終端
    • 這時若不須要screen了,直接殺死,按 exit 便可
    • 再次 screen -ls 查看,會發現沒有screen
[root@hf-01 ~]# screen
在虛擬終端下執行了vmstat 1,按 ctrl+a鍵 同時按,隨後再按 d鍵 ,就把screen丟到後臺了

[detached from 2841.pts-0.hf-01]
[root@hf-01 ~]# screen -ls        //列出當前全部的session
There is a screen on:
	2841.pts-0.hf-01	(Detached)
1 Socket in /var/run/screen/S-root.

[root@hf-01 ~]# screen -r 2841    //從新回到虛擬終端——>若不須要screen了,直接殺死,按 exit 便可
[screen is terminating]
[root@hf-01 ~]# screen -ls        //再次查看,會發現沒有screen
No Sockets found in /var/run/screen/S-root.

[root@hf-01 ~]#

screen命令,多個虛擬終端同時運行

  • screen能夠執行多個虛擬終端,同時運行
    • 若想進入到其中一個,指定id便可
[root@hf-01 ~]# screen
[detached from 2880.pts-0.hf-01]
[root@hf-01 ~]# screen
[detached from 2903.pts-0.hf-01]
[root@hf-01 ~]# screen
[detached from 2926.pts-0.hf-01]
[root@hf-01 ~]# screen -ls
There are screens on:
	2926.pts-0.hf-01	(Detached)
	2903.pts-0.hf-01	(Detached)
	2880.pts-0.hf-01	(Detached)
3 Sockets in /var/run/screen/S-root.

[root@hf-01 ~]#
  • 可是時間久了,有可能會忘記某一個screen是運行的是什麼(由於名字是相同的)
    • 咱們能夠給screen做業的名稱
  • screen -S "test_screen" //指定screen做業的名稱
    • screen -r 後能夠加id號,能夠是screen做業的名稱
相關文章
相關標籤/搜索