1. 程式人生 > 其它 >CentOS 7 後臺克隆遠端庫

CentOS 7 後臺克隆遠端庫

技術標籤:centosgit

引子

解決 CentOS 7 下 Git 超時後,發現庫還是太大,要花費比較長的時間,還是讓其在後臺執行比較好,這樣不用一直保持登入。找了下資料,總結一下。

相關知識點

Shell

Shell 是一種命令語言,也是一種程式設計語言。它是使用者使用 Linux 的橋樑。Shell 指令碼,是一種為 Shell 編寫的指令碼程式。Shell 指令碼程式設計跟 JavaScript 一樣,只要有一個能寫程式碼的文字編輯器和一個能解釋執行的指令碼直譯器就可以了。Linux 的 Shell 種類很多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

Linux nohup 命令

nohup 全稱是 no hang up ,也就是不掛起的意思,用於在系統後臺不掛斷地執行命令,退出終端也不會影響程式的執行。

nohup 命令,在預設情況下(非重定向時),會輸出一個名叫 nohup.out 的檔案到當前目錄下,如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $HOME/nohup.out 檔案中。

語法格式:

nohup Command [Arg…] [&]
  • Command:要執行的命令。
  • Arg:引數,可以指定輸出檔案。
  • &:讓命令後臺執行。

更多內容見這裡

實現方式

寫一個指令碼,然後讓其後臺執行。

git.sh 指令碼內容很簡單:

echo 'git clone start'

git clone https://github.com/XXx/xxx.git

echo 'git clone end'

在非視覺化終端操作順序:

# 建立檔案
> git.sh

# 編輯檔案
vim git.sh

# 執行指令碼
nohup ./git.sh &

執行的時候出現了提示:

nohup: 無法執行命令"./git.sh": 許可權不夠

新增許可權:

chmod +x ./git.sh

再次執行指令碼後,出現下面的提示:

82-nohup

注意這個時候,需要按任意鍵退回到 shell 輸入命令視窗,退出的時候使用 exit 命令退出。

如果上述程式執行完成,會在 nohup.out 檔案中寫入指令碼中對應的提示資訊。

檢視

檢視正在執行的後臺任務:

jobs -l

82-jobs

可以發現,跟執行指令碼成功後出現的數字提示一致。

jobs 命令只對當前終端有效,關閉或退出終端後,在另一個終端 jobs 命令無法看到後臺執行的程式,此時可以使用 ps 命令:

ps -aux|grep git.sh

82-ps

如果想要關閉對應程序:

kill -9 程序號

參考資料