我透過 bash 呼叫以下命令,但它根本沒有創建螢幕會話:
screen -d -m time python3 myscript.py ; sleep 1
當我screen -r
這樣做時,它說沒有螢幕可以恢復。但是當我嘗試時:
screen -d -m time python3; sleep 1
然後執行此操作時screen -r
會顯示 Py 控制台。
我做錯了什麼?
答案1
screen -d -m time python3 myscript.py
python3 myscript.py
在螢幕會話內運行,然後退出。如果您稍後沒有看到該螢幕會話,那是因為腳本已經退出。
看來你期望myscript.py
跑得更久。一定是出了什麼問題。將輸出(尤其是錯誤)重定向到檔案以查看發生了什麼。或透過運行另一個程式來保持會話。
screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'
如果直接從螢幕執行該腳本時該腳本不起作用,但從互動式 shell 執行該腳本則有效,這很可能表明兩件事:
myscript.py
依賴某些設置,可能是環境變數。它不是獨立的。- 您將此設定設定在錯誤的位置。您可能在 中設定了一個環境變量
.bashrc
,只能由互動式 shell 讀取。改為設定環境變數.profile
;當您登入時會讀取此文件。