有時我們也許會有這樣的需求:要執行一個命令或者腳本,但是需要幾個小時甚至幾天。這就要考慮一個問題,就是中途斷網或出現其他意外情況,執行的任務中斷了怎么辦?你可以把命令或者腳本丟到后臺運行,不過也不保險。下面就介紹兩種方法來避免這樣的問題發生。
1. 使用nohup
[root@localhost ~]# cat /usr/local/sbin/sleep.sh
#! /bin/bash
sleep 1000
[root@localhost ~]# nohup sh /usr/local/sbin/sleep.sh &
[1] 19997
[root@localhost ~]# nohup: 忽略輸入并把輸出追加到"nohup.out"
直接加一個 ‘&’ 雖然丟到后臺了,但是當退出該終端時很有可能這個腳本也會退出的,而在前面加上 nohup 就沒有問題了,nohup的作用就是不掛斷地運行命令。
2. screen工具的使用
簡單來說,screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,在每一個screen窗口中就像操作一個真實的SSH連接窗口那樣。下面阿銘介紹screen的一個簡單應用。
1)打開一個會話,直接輸入screen命令然后回車,進入screen會話窗口。如果你沒有screen命令,請用yuminstall-yscreen安裝。
[root@localhost ~]# screen
[root@localhost ~]#
2)screen -ls 查看已經打開的screen會話
[root@localhost ~]# screen -ls
There is a screen on:
20001.pts-0.localhost (Attached)
1 Socket in /var/run/screen/S-root.
3)Ctrl +a 再按d退出該screen會話,只是退出,并沒有結束。結束的話輸入Ctrl +d 或者輸入exit
4)退出后還想再次登錄某個screen會話,使用sreen -r [screen 編號],這個編號就是上例中那個20001。當只有一個screen會話時,后面的編號是可以省略的。當你有某個需要長時間運行的命令或者腳本時就打開一個screen會話,然后運行該任務。按ctrl +a 再按d退出會話,不影響終端窗口上的任何操作。
-
Linux
+關注
關注
87文章
11230瀏覽量
208933 -
Screen
+關注
關注
0文章
12瀏覽量
6742
原文標題:screen工具使用
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論