Linux
我可以 nohup/screen 已經啟動的程序嗎?
我正在通過 SSH 對長時間執行的數據遷移腳本進行一些測試。假設我在下午 4 點左右開始執行腳本;現在,下午 6 點左右,我在詛咒自己沒有做這一切
screen
。有什麼方法可以“追溯”
nohup
一個過程,還是我需要讓我的電腦整夜線上?如果無法附加screen
到/nohup
我已經開始的程序,那為什麼?與父/子程序如何互動有關?(我不會接受至少不能解決“為什麼”問題的“否”答案——對不起;))
如果您使用的是 Bash,則可以執行
disown -h job
disown [-ar] [-h] [jobspec ...]
如果沒有選項,每個作業規範都會從活動作業表中刪除。如果
-h
給出該選項,則不會從表中刪除作業,但會被標記,以便在 shell 接收到 SIGHUP 時不會將 SIGHUP 發送到作業。如果 jobspec 不存在,也沒有提供-a
nor-r
選項,則使用目前作業。如果未提供作業規範,則該-a
選項表示刪除或標記所有作業;沒有 jobspec 參數的-r
選項將操作限制為正在執行的作業。