全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
123
返回列表 发新帖

[疑问] 请教一个screen命令的问题

[复制链接]
发表于 2021-5-8 01:40:05 | 显示全部楼层
叫我ams就好了 发表于 2021-5-8 01:34
我要全程不进去screen,并且一次运行多个命令 比如wget,tar,make,该怎么写 ...

"wget xxx; tar xxx; make"
发表于 2021-5-8 01:41:27 | 显示全部楼层
叫我ams就好了 发表于 2021-5-8 01:34
我要全程不进去screen,并且一次运行多个命令 比如wget,tar,make,该怎么写 ...

"wget xxx; tar xxx; make"
 楼主| 发表于 2021-5-8 01:55:13 | 显示全部楼层
zxxx 发表于 2021-5-8 01:41
"wget xxx; tar xxx; make"

用【;】不是用【&&】啊

谢谢大佬,我去试试
发表于 2021-5-8 02:42:45 | 显示全部楼层
本帖最后由 dunce 于 2021-5-8 18:59 编辑
叫我ams就好了 发表于 2021-5-8 01:34
我要全程不进去screen,并且一次运行多个命令 比如wget,tar,make,该怎么写 ...

  1. screen -dmS [name] [command]
复制代码

这种写法只能执行一条命令,不过可以通过执行bash来间接执行多条命令(用&&连接)。也可以先把命令写到脚本里,再执行脚本
  1. screen -dmS my_screen bash -c 'wget && tar && make'
  2. screen -dmS my_screen /bin/sh script.sh
复制代码


#20L
command跑完以后screen会terminate
如果要保持screen, 只能先创建screen 然后在外面发号施令:
  1. screen -dmS my_screen
  2. screen -S my_screen -X exec bash -c 'wget && tar && make' #跑完以后screen还活着
  3. screen -S my_screen -X quit #手动关掉screen,用kill也行
复制代码


关于连续执行多条 screen -X 的问题,我刚才试了一下
  1. screen -dmS my_screen
  2. screen -S my_screen -X exec sleep 5s
  3. screen -S my_screen -X exec pwd #如果上一条没执行完,这条命令会被过滤掉
复制代码

也就是说,screen自身没法确保每条指令都依次正确执行,只能在外面手动控制好时机
然而在外面没法直接获取screen里面的执行情况,没法确定什么时候该执行下一条指令,或者什么时候手动kill
建议还是把命令写脚本里,然后screen -dmS [name] /bin/sh script.sh 一步到位,执行完了就自动销毁screen
发表于 2021-5-8 03:37:07 | 显示全部楼层
  1. screen -dmS name /bin/sh script.sh
复制代码

终极方案
 楼主| 发表于 2021-5-8 14:38:04 | 显示全部楼层
dunce 发表于 2021-5-8 02:42
这种写法只能执行一条命令,不过可以通过执行bash来间接执行多条命令(用&&连接)。也可以先把命令写到 ...

谢谢大佬,很详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-11 13:43 , Processed in 0.061315 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表