gpt4 book ai didi

bash - 在命令执行时间未结束时从命令跳转

转载 作者:行者123 更新时间:2023-12-02 20:19:07 25 4
gpt4 key购买 nike

我已经启动了“docker run”下面的脚本,它将根据docker文件打开tty以执行其命令,报告执行结束标志大约需要5-6个小时,但与此同时我需要让它执行这项工作并在shell脚本行中继续前进,并获取一些pid并为其添加条件。
我的问题不在于我无法执行“docker run”,然后再将其移至其他脚本行。
我该如何做到而又不影响“docker run”命令。

    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

最佳答案

I know if I use "-d" I can run docker in daemon mode,but I just want run docker and let it do its job and go to next line,



那么最简单的方法是在后台启动docker
docker run ... &
^^^

请注意,脚本的其余部分将无法直接从主机看到docker容器(如tar)启动的进程。
参见“ Finding Docker container processes? from host point of view”。
您必须为此使用 docker top

关于bash - 在命令执行时间未结束时从命令跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40326638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com