Linux
我可以在 ssh 會話中啟動/恢復現有的 tar 程序啟動嗎?
首先,如果我停止一個 tar 程序,它會從停止的地方恢復還是必須再次遍歷所有目錄(很多目錄和文件)。
其次,我是否正確地“否認”了這個過程?
- 我 ssh 進入我的 linux (ubuntu) 伺服器。
- 我用 ’tar -cf /mnt/backup.tar /var/www’ 啟動了一個程序
- 幾個小時後,該過程仍在執行,我需要關閉台式電腦。
- 我按 Ctrl+Z 暫停該過程,
- 然後執行“bg”以在後台恢復它。
- 然後執行’disown -h tar'
- 然後執行’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/
- 我看到 tar 命令,它的“STAT”列顯示 D。這是否意味著分離?
- 我不太確定“工作”到底是什麼,我假設是“焦油”。
請讓我知道我所做的是否正確,現在註銷並關閉 ssh 會話是否安全。討厭不得不重新啟動這個過程。
還要注意,這個問題在這裡得到了一些回答: 我可以 nohup/screen 一個已經開始的過程嗎?
但是,我正在擴展這個問題,因為我對使用 disown 以及實際上是什麼“工作”有點困惑。
當您退出互動式 bash 登錄 shell 時,它會向所有子級發送 SIGHUP,除非 shell 選項
huponexit
設置為 off。當大多數使用者態程序收到 SIGHUP 時,它們將退出。
當 you 時
disown -h
,您正在標記程序以防止 bash 在退出時發送 SIGHUP,而不管 shell 選項如何。您還可以在命令前加上前綴nohup
以重現相同的行為。至於STAT D:
不間斷睡眠狀態是無法處理信號的睡眠狀態(例如等待磁碟或網路 IO(輸入/輸出))。