題:
如果我退出Terminal.app,啟動的進程是否也隨之退出?
Rick Lecoat
2018-01-04 13:21:16 UTC
view on stackexchange narkive permalink

如果我使用終端啟動耗時的過程(在這種情況下,請刪除Time Capsule上的一個大的.sparsebundle文件,這可能需要幾個小時),然後如果我在該過程完成之前退出了終端應用本身,正在進行的過程(刪除)是否也退出?還是Terminal只是充當“觸發器”,並且無論Terminal.app是否處於活動狀態,進程都會自動運行?

它在關閉正在運行的終端窗口之前提示您的事實,使它看起來好像發生在Terminal.app中
一 回答:
David Anderson
2018-01-04 15:59:12 UTC
view on stackexchange narkive permalink

要使該命令在關閉“終端應用程序”窗口後繼續執行,您需要執行以下操作。

  1. 在命令前加上 nohup 。關閉終端應用程序窗口後,這將使命令繼續執行。這還允許該命令在退出終端應用程序後繼續執行。
  2. 將標準輸出和標準錯誤重定向到相同或不同的文件。這給輸出提供了一定的空間,否則將使用默認值。 (請參見下面的手冊頁。)
  3. 在命令行末尾添加 & 。這會在後台運行命令,否則,直到命令完成,您才會收到命令提示符。
  4. ol>

    例如,如果我想使用 find 命令搜索文件 readgpt 並將結果打印到終端應用程序窗口中,我將執行給定的命令下面。注意:在這裡,我不在乎錯誤消息,因此我將標準錯誤重定向到 / dev / null

      find / -name readgpt -print 2> / dev / null
     

    現在,如果我想關閉終端應用程序窗口並稍後查看結果,我將執行以下命令。

      nohup find / -name readgpt -print >〜/ Documents / results.txt 2> / dev / null &
     

    輸入上述內容後,您將在方括號中獲得工作編號,後跟進程編號。下面是一個示例。

      [1] 1456
     

    您可以通過輸入 ps 命令來獲取此過程的狀態,如下所示。

      Marlin:〜davidanderson $ ps 1456美元
      PID TT STAT時間命令
     1456 s001 U 0:06.83查找/ -name readgpt -print
     

    您可以通過輸入 kill 命令來終止此過程,如下所示。

      Marlin:〜davidanderson $殺死1456
    [1] +已終止:15 nohup find / -name readgpt -print >〜/ Documents / results.txt 2> / dev / null
     

    注意:如果您在不同於用於創建該進程的窗口中輸入 kill 命令,則可能沒有輸出。

    以下給出了 nohup 命令的手冊頁。

      NOHUP(1)BSD通用命令手冊NOHUP(1)
    
    名稱
         nohup-調用不受掛斷影響的實用程序
    
    概要
         nohup [-]實用程序[參數]
    
    描述
         nohup實用程序使用其參數調用實用程序,此時
         時間設置信號SIGHUP被忽略。如果是標準輸出
         是終端,標準輸出附加到文件nohup.out
         在當前目錄中。如果標準錯誤是終端,則為
         定向到與標準輸出相同的位置。
    
         某些shell可能會提供內置的nohup命令,該命令類似於或
         與此實用程序相同。請查閱內置(1)手冊頁。
    
    環境
         Nohup使用以下變量:
    
         HOME如果無法在當前目錄中創建輸出文件nohup.out
               目錄,nohup實用程序使用HOME命名的目錄
               創建文件。
    
         PATH如果名稱不包含,則用於查找所請求的實用程序
               “ /”字符。
    
    退出狀態
         使用以下值之一退出nohup實用程序:
    
         126已找到實用程序,但無法調用。
    
         127找不到實用程序,或者在發生錯誤。
                 沒事
    
         否則,nohup的退出狀態將是實用程序的退出狀態。
    
    也可以看看
         內置(1),csh(1),信號(3)
    
    標準品
         nohup實用程序應為IEEE Std 1003.2(``POSIX.2'')
         兼容。
    
    臭蟲
         兩個或多個nohup實例可以追加到同一文件,
         令人困惑的輸出。
    BSD 2001年7月19日BSD
     


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...