首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sh屏幕-等待屏幕终止

sh屏幕-等待屏幕终止
EN

Stack Overflow用户
提问于 2013-08-06 18:37:28
回答 3查看 6.1K关注 0票数 6

我正在编写一个小脚本,它确实向正在运行的屏幕会话发送命令。此命令会停止屏幕,但不会立即停止。我需要等待它完成,以便继续脚本的其余部分。

我就是这样停止屏幕的:

代码语言:javascript
复制
screen -S $SCREEN_NAME -p 0 -X stuff "`printf "stop\r"`"

我怎么能这么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-08 22:14:12

我找到了一个解决办法:

您只需检查屏幕是否仍在运行,并等待(sleep)一秒钟。

如下所示:

代码语言:javascript
复制
while screen -list | grep -q $SCREEN_NAME
do
    sleep 1
done
票数 10
EN

Stack Overflow用户

发布于 2013-08-06 18:51:13

对于*nix系统,可以在shell脚本中使用wait命令。wait也可以使用PID,所以您可以在后台执行最后一次执行的命令时执行wait $!。如果您的命令没有在后台运行(命令末尾没有& ),那么运行脚本将等待该命令完成。

票数 0
EN

Stack Overflow用户

发布于 2019-09-13 19:17:43

如果重新附加屏幕会话,则屏幕会话将自动等待,直到完成所有进程。如果您试图重新附加到已经完成的会话,它将立即出错。

如果你想在“无头”模式下运行,那么BrainStone的回答就足够好了。只需确保将会话($SCREEN_NAME)命名为唯一。类似SCREEN_NAME=$(date +my_screen_thing_+%H%M%S)的东西,可以在上面加盖时间戳。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18087964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档