全球主机交流论坛

标题: screen 指令 [打印本页]

作者: ghost    时间: 2019-8-20 18:04
标题: screen 指令
請問,在 script 裡要使用 screen,

screen -dmS <name> bash <sh_name>.sh

會出現一個問題, 如果那個 sh 裡的 command 是執行完就結束的,比如說是 ls,那它執行完就會被 close,
如果是持續執行的,像是 top,那在我按 q 退出 top 後它一樣會被結束.

如果我希望那個 screen 一直掛在那裏,不管我開出來的那個 screen 裡是不是有 job 在工作著,
那我該怎麼做?
因為我想用排程去檢查那個 screen name 裡的 job 是不是還在,
如果不在的話就連上那個 screen 裡再執行它...




作者: 003    时间: 2019-8-20 18:06
繁体字大佬,你好,不懂帮顶
作者: king51    时间: 2019-8-20 18:07
请使用tmux。。
作者: JamCh01    时间: 2019-8-20 18:07
所以我用 tmux
作者: dearroy    时间: 2019-8-20 18:10
繁体字大佬,如果你一定要使用screen的话,看这里

https://unix.stackexchange.com/questions/47271/prevent-gnu-screen-from-terminating-session-once-executed-script-ends
作者: mzh    时间: 2019-8-20 18:12
screen 就 Ctrl+a+d 来detach 。tmux就用 ctrl+b  d 来detach。这个问题和用screen还是tmux完全没关系
作者: nichijou    时间: 2019-8-20 18:13
不退出直接Ctrl a +d挂起不行?
作者: ansheng    时间: 2019-8-20 18:14
所以我选择tmux
作者: ghost    时间: 2019-8-20 18:27
nichijou 发表于 2019-8-20 18:13
不退出直接Ctrl a +d挂起不行?

重點是,如果我用 screen -dmS <name> bash <shell>.sh 掛起來的 screen 在 job 結束後就會自動關掉...

我想問的就是要怎樣可以讓那個 screen 可以掛在那不關閉,這樣我才能 scree -r <name> 回來...
作者: ghost    时间: 2019-8-20 18:31
本帖最后由 ghost 于 2019-8-20 18:45 编辑
dearroy 发表于 2019-8-20 18:10
繁体字大佬,如果你一定要使用screen的话,看这里

https://unix.stackexchange.com/questions/47271/preve ...


剛試了下,加上 -c 後再下 command 可以.
謝謝.

可以先用 -dmS <name> -c 開出一個 screen,要再登上那個 screen 時就直接 -rS <name> 就可以,
我再查查怎麼登上那個 screen 執行 job 後再自動 deattach..
作者: loeveo    时间: 2019-8-20 19:18
Ctrl a+d挂到后台 screen -r xxc进入
作者: ApkB    时间: 2019-8-20 19:28
直接运行命令screen,进入screen窗口后,要切换出来就按ctrl + a + d
这里有你需要的所有解释
https://e2c.net/2019/08/14/155.html
作者: ghost    时间: 2019-8-20 19:43
本帖最后由 ghost 于 2019-8-20 19:44 编辑

是要寫在 script 裡,不是在 command 裡啊~~~~

ctrl + xxx 那個在 script 裡是沒法用的啊...
作者: h2o    时间: 2019-8-20 20:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: suantong    时间: 2019-8-20 20:46
Screen不会detach?
作者: zhujimi    时间: 2019-8-20 21:00
  1. screen -dmS name bash -c "要执行的命令,比如echo 1"
复制代码

作者: ghost    时间: 2019-8-27 19:48
zhujimi 发表于 2019-8-20 21:00

是的,這樣第一次執行時可以,但 script 第二次再執行這個指令時,其實是會又開另一個 xxxx.<name> 的 screen
查到有一個方法是
screen -rS <name> -X exec "sh/command"
應該可以用在第二次使用同一個 screen ...





欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4