Linux

我可以在 ssh 會話中啟動/恢復現有的 tar 程序啟動嗎?

  • August 25, 2010

首先,如果我停止一個 tar 程序,它會從停止的地方恢復還是必須再次遍歷所有目錄(很多目錄和文件)。

其次,我是否正確地“否認”了這個過程?

  1. 我 ssh 進入我的 linux (ubuntu) 伺服器。
  2. 我用 ’tar -cf /mnt/backup.tar /var/www’ 啟動了一個程序
  3. 幾個小時後,該過程仍在執行,我需要關閉台式電腦。
  4. 我按 Ctrl+Z 暫停該過程,
  5. 然後執行“bg”以在後台恢復它。
  6. 然後執行’disown -h tar'
  7. 然後執行’ps faux'
root      8760  0.0  0.1   8964  3036 ?        Ss   Aug21   0:21  \_ sshd: root@pts/0 
root      8762  0.0  0.1   4408  1880 pts/0    Ss+  Aug21   0:00  |   \_ -bash
root     23184  0.2  0.0   3708  1072 pts/0    D    Aug24   3:30  |       \_ tar -cf /mnt/backup.tar www/
  1. 我看到 tar 命令,它的“STAT”列顯示 D。這是否意味著分離?
  2. 我不太確定“工作”到底是什麼,我假設是“焦油”。

請讓我知道我所做的是否正確,現在註銷並關閉 ssh 會話是否安全。討厭不得不重新啟動這個過程。

還要注意,這個問題在這裡得到了一些回答: 我可以 nohup/screen 一個已經開始的過程嗎?

但是,我正在擴展這個問題,因為我對使用 disown 以及實際上是什麼“工作”有點困惑。

當您退出互動式 bash 登錄 shell 時,它會向所有子級發送 SIGHUP,除非 shell 選項huponexit設置為 off。

當大多數使用者態程序收到 SIGHUP 時,它們將退出。

當 you 時disown -h,您正在標記程序以防止 bash 在退出時發送 SIGHUP,而不管 shell 選項如何。您還可以在命令前加上前綴nohup以重現相同的行為。

至於STAT D:

不間斷睡眠狀態是無法處理信號的睡眠狀態(例如等待磁碟或網路 IO(輸入/輸出))。

引用自:https://serverfault.com/questions/174367