讓Linux關閉終端(關閉SSH等)后,程序繼續運行
關於為什么關閉終端后,程序會終止,可以查看這篇博文:https://blog.csdn.net/gatieme/article/details/52777721
參考2,linux后台執行命令:&和nohup:https://blog.csdn.net/liuyanfeier/article/details/62422742
大概就是,終端關閉后,系統會發送一個SIGHUP(掛斷信號),自動地終止在當前會話中運行的程序。
解決方法:
1 . 使用nohup命令
nohup command > myout.file 2>&1 & # 將日志輸出到myout.file文件中 nohup command & # 會在當前目錄下創建一個nohup.out文件,記錄程序運行時在終端產生的輸出
- 1
- 2
2 . 使用 screen命令
step1:按screen,回車進入子界面
step2:./single_model_train_val.sh 運行程序
step3:按ctrl+a再按d,程序會在關閉終端后繼續運行
這樣暫停了子界面,會顯示[detached]的字樣,這時候 我回到了父界面;
[detached from 26454.pts-1.A01-R04-I231-16-7280278]
step4:screen -ls 查看子頁面信息,.pts前面數字為子頁面序號。
(pytorch-v0.3) [root@A01-R04-I231-16-7280278 Consumer]# screen -ls
There are screens on:
26454.pts-1.A01-R04-I231-16-7280278 (Detached)
769.pts-1.A01-R04-I231-16-7280278 (Detached)
2 Sockets in /var/run/screen/S-root.
26454是主界面的序號,769是子界面的序號。
step5:screen –r 子頁面序號,這時候就回到之前程序運行的序號。
# 但是實際中我遇到一個問題,在子界面中激活我自己創建的conda環境,環境變量和主界面不一樣
