Free close up hanging white

nohup – 如何在背景執行避免登出造成中斷

一台 EC2 要怎麼讓他在背景長時間執行我想要的東西呢? 舉例來說,登入一台 EC2 之後,想執行一個長時間的工作。但如果不想一直開著 terminal 該怎麼做? 我只是想簡單的啟動一台 server ,之後就掛在那邊了,總不可能一直開著 terminal 吧?

正常來說當你登出 shell ,系統會發送給 process 相關的 HUP 訊號 (Hang Up) ,程式收到這個訊號就會關閉。但用了 nohup 就可以阻斷該訊號,導致這個程式不會因為這樣 shell 關閉而被中斷。

nohup <COMMAND> &

執行過後,再按一次 Enter 就可以了。指令執行的輸出會印在目前資料夾的 nohup.out 裡面,其中也包括錯誤訊息輸出。

要注意的是 nohup.out 輸出的訊息會累計。因此要清掉紀錄的話,記得刪掉檔案再執行。

其中 559240 指的是 process id ,可以把 process 印出來。

ps aux | grep 559240

也可以用 fg 將 process 從背景喚回前景,利用其中 [1] 表示目前 shell 中 job list 中的第一位。

fg 1


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *