Linux後臺執行的方法 - 關閉、退出不影響
阿新 • • 發佈:2018-07-29
所有 mat data ack job tid scree 快捷 -c
難免會遇到在Linux,後臺執行任務。下面,總結了一下關閉窗口任然在後臺執行的方法,例如
#執行一個打包命令
tar czf /data/backup.tgz /data/backup
1. 采用&
tar czf /data/backup.tgz /data/backup &
ctrl+d #退出 才可以,如果直接關閉窗口,進程任然會被關閉
2. 采用nohup
nohup tar czf /data/backup.tgz /data/backup
ctrl+z #掛起到後臺
bg #後臺執行 可以先通過jobs 查看當前有多少job
ctrl+d #或者 關閉窗口 進程任然會在後臺執行
3.采用nohup + &
nohup tar czf /data/backup.tgz /data/backup &
ctrl+d 或者 關閉窗口 進程任然會在後臺執行
4.采用(command &)
(tar czf /data/backup.tgz /data/backup &) #會將ppid設置為1,而非當前會話的id,並且jobs查看不到當前的作業。註意這裏的括號即是這個方法的重點。
ctrl+d #或者 關閉窗口 進程任然會在後臺執行
5.采用setid run a program in a new session
setid tar czf /data/backup.tgz /data/backup #會將ppid設置為1,而非當前會話的id
ctrl+d #或者 關閉窗口 進程任然會在後臺執行
6.采用disown
tar czf /data/backup.tgz /data/backup
ctrl+z
jobs
bg %N
disown -h %N #N即為job的id disown 可以配合 &使用,效果更好,因為 CTRL-z 的用途就是將當前進程掛起(Suspend),然後我們就可以用jobs命令來查詢它的作業號,再用bg jobspec來將它放入後臺並繼續運行。需要註意的是,如果掛起會影響當前進程的運行結果,請慎用此方法。
disown -rh -a xxx #-a所有 -r所有 -h忽略hup
7.采用screen
screen
tar czf /data/backup.tgz /data/backup
ctrl+a d #不可以直接ctrl+d 這樣會ternimate screen
用screen -dmS session name來建立一個處於斷開模式下的會話(並指定其會話名)。
用screen -list 來列出所有會話。
用screen -r session name來重新連接指定會話。 screen -x session_name(id) 連接attached會話
用快捷鍵CTRL-a d 來暫時斷開當前會話。
Linux後臺執行的方法 - 關閉、退出不影響