bash nohup 命令教程

原文鏈接:https://www.maketecheasier.com/nohup-and-uses/

背景

     nohup的意思是“沒有掛斷”。 通常,當我們從系統註銷時,所有正在運行的程序或進程都會掛起或終止。 如果要在註銷或退出Linux操作系統後運行任何程序,則必須使用nohup命令。 有許多程序需要很長時間才能完成。 我們不需要長時間登錄來完成命令的任務。 我們可以使用nohup命令在後臺運行這些類型的程序並稍後檢查輸出。 使用nohup命令的一些示例是內存檢查,服務器重啓,同步等。本教程中顯示瞭如何在Ubuntu上使用nohup命令在後臺運行程序。

  • 可以通過下面命令查看nohup的版本
$ nohup   --version

示例1:使用沒有'&'的nohup命令

        當你運行沒有'&'的nohup命令時,它會在後臺運行該特定命令後立即返回到shell命令提示符。 在以下示例中,nohup運行bash命令而不使用“&”在後臺執行sleep1.sh文件。 如果nohup命令中沒有提到任何重定向文件名,則nohup命令的輸出將在nohup.out中寫入文件。 對於以下命令,您可以通過檢查nohup.out文件的輸出來檢查sleep1.sh的輸出。我們先新建一個sleep.sh作爲測試文件:

$ vim sleep1.sh
加入內容
echo 'sleep1'

 

測試nohup:

$ nohup bash sleep1.sh
$ cat nohup.out

結果如下:

您可以按以下方式執行該命令,以將輸出重定向到output.txt文件。 檢查output.txt的輸出。

$ nohup bash sleep1.sh > output.txt
$ cat output.txt

示例2:使用帶有'&'的nohup命令

當nohup命令與'&'一起使用時,它在後臺運行命令後,不會返回shell命令提示符。可以輸入'fg'返回shell命令提示符

$ nohup bash sleep1.sh &
$ fg

示例3:使用nohup命令在後臺運行多個命令

    您可以使用nohup命令在後臺運行多個命令。 在以下命令中,使用nohup和bash命令在後臺執行mkdir和ls命令。 您可以通過檢查output.txt文件來獲取命令的輸出。但是不建議這麼做,多個命令可以自己寫一個sh腳本來執行

$ nohup bash -c 'mkdir myDir && ls'> output.txt
$ cat output.txt

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章