請問,在 script 裡要使用 screen,
screen -dmS <name> bash <sh_name>.sh
會出現一個問題, 如果那個 sh 裡的 command 是執行完就結束的,比如說是 ls,那它執行完就會被 close,
如果是持續執行的,像是 top,那在我按 q 退出 top 後它一樣會被結束.
如果我希望那個 screen 一直掛在那裏,不管我開出來的那個 screen 裡是不是有 job 在工作著,
那我該怎麼做?
因為我想用排程去檢查那個 screen name 裡的 job 是不是還在,
如果不在的話就連上那個 screen 裡再執行它…
湖南网友:繁体字大佬,你好,不懂帮顶
澳门网友:请使用tmux。。
宁夏网友:所以我用 tmux
辽宁网友:繁体字大佬,如果你一定要使用screen的话,看这里
https://unix.stackexchange.com/questions/47271/prevent-gnu-screen-from-terminating-session-once-executed-script-ends
黑龙江网友:screen 就 Ctrl+a+d 来detach 。tmux就用 ctrl+b d 来detach。这个问题和用screen还是tmux完全没关系
西藏网友:不退出直接Ctrl a +d挂起不行?
湖北网友:所以我选择tmux
云南网友:重點是,如果我用 screen -dmS <name> bash <shell>.sh 掛起來的 screen 在 job 結束後就會自動關掉…
我想問的就是要怎樣可以讓那個 screen 可以掛在那不關閉,這樣我才能 scree -r <name> 回來…
西藏网友:
剛試了下,加上 -c 後再下 command 可以.
謝謝.
可以先用 -dmS <name> -c 開出一個 screen,要再登上那個 screen 時就直接 -rS <name> 就可以,
我再查查怎麼登上那個 screen 執行 job 後再自動 deattach..
江苏网友:
剛試了下,加上 -c 後再下 command 可以.
謝謝.
可以先用 -dmS <name> -c 開出一個 screen,要再登上那個 screen 時就直接 -rS <name> 就可以,
我再查查怎麼登上那個 screen 執行 job 後再自動 deattach..
海南网友:直接运行命令screen,进入screen窗口后,要切换出来就按ctrl + a + d
这里有你需要的所有解释
https://e2c.net/2019/08/14/155.html
福建网友:
是要寫在 script 裡,不是在 command 裡啊~~~~
ctrl + xxx 那個在 script 裡是沒法用的啊…
浙江网友:尾巴加个sh不就好了
甘肃网友:Screen不会detach?
湖北网友:
- screen -dmS name bash -c "要执行的命令,比如echo 1"
复制代码
贵州网友:是的,這樣第一次執行時可以,但 script 第二次再執行這個指令時,其實是會又開另一個 xxxx.<name> 的 screen
查到有一個方法是
screen -rS <name> -X exec "sh/command"
應該可以用在第二次使用同一個 screen …