首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当它的执行时间未结束时,从命令跳转

当它的执行时间未结束时,从命令跳转
EN

Stack Overflow用户
提问于 2016-10-30 06:41:08
回答 1查看 75关注 0票数 1

我在下面的脚本中启动了"docker run“,它将打开tty,根据docker文件执行它的命令,报告一个执行结束标志大约需要5-6小时,但同时我需要让它完成工作,在shell脚本行中继续前进,得到一些pid并使用它来创造条件。不,我的问题是我不能执行"docker“,然后从它移到其他的脚本行。我如何做到这一点而不影响“码头运行”命令。

代码语言:javascript
复制
    docker run --name=something -it --rm \
      --link=postgresql:postgresql \  
      --publish=80:80 \
      --env='something_PORT=80' \
      --env='NGINX_MAX_UPLOAD_SIZE=60m' \
      --volume=/srv/docker/something:/home/something/data \
      --volume=/srv/docker/something/rgloader:/home/something/rgloader \
      something:3.3 \
      app:backup:restore

#30 sec pass till process starts to unpack tar file.
    sleep 30

#Get PID of tar extraction process
    PID=`ps au | grep "tar -xf" | head -n 1 | awk '{print $2}'`
echo $PID

echo "tar file extraction is completed"

#wait until tar extraction process ends

while [ -e /proc/$PID ]
do
    echo $PID PID still running
    sleep 10
done
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-30 09:20:01

我知道如果我使用"-d“,我可以在守护进程模式下运行docker,但是我只想运行docker,让它完成它的工作,然后转到下一行,

那么最简单的方法就是在后台启动对接器。

代码语言:javascript
复制
docker run ... &
              ^^^

请注意,脚本的其余部分不会直接从主机看到由您的docker容器(如tar)启动的进程。

见"Finding Docker container processes? from host point of view“。

为此,您必须使用docker top

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

https://stackoverflow.com/questions/40326638

复制
相关文章

相似问题

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