Bash
執行分離的螢幕會話,但在同一個 bash 中沒有終止
這裡已經有很多這樣的問題,但每個人都推薦(一種變體)以下解決方案:
screen -dmS somename bash -c "/path/to/script; bash -l"
例如,當
script
結束時,執行一個新的bash
.不幸的是,這對我不起作用,因為
- 使用
script
$BASHPID 變數做某事script
執行永遠執行,例如需要用 CTRL-C 終止它- 並且在終止後我必須具有與執行相同的外殼
script
(相同$BASHPID
)所以,問題是:
如何
screen
在分離模式下啟動(例如在啟動時) - 通常這是由-dm
它必須啟動外殼
- 最好,如果它可以將其作為“登錄”外殼啟動,例如讀取 my 的內容
.profile
,但這可以通過source ~/.profile
本身script
來克服- 啟動
script
其他(二進制)程序將執行到 CTRL-C並且在終止後
script
我必須得到相同bash
的(相同的$BASHPID
(因為需要執行另一個腳本取決於它)總之需要模擬以下互動工作:
- 開始
screen
echo $BASHPID
- 在螢幕內執行一些命令(最後一個執行到 CTRL-C) - 例如執行
/path/to/script
- 分離 (ctrl-a d)
在上面之後,以後,我可以做
- 重新連接 (
screen -ARR
)- CTRL-C
- 並且可以繼續……同樣
echo $BASHPID
#將產生與上面相同的結果任何的想法?(考慮
-X
但它不起作用,我可能在某個地方犯了錯誤)
看來 這裡的答案 是針對您的案例的。簡而言之:
bash --init-file <(echo "yourcommand")