gpt4 book ai didi

linux - 示例生成的进程处于事件状态并退出代码

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:30 25 4
gpt4 key购买 nike

我有一个 bash 脚本,它运行一个长时间运行的进程,将大量内容打印到标准输出。我让脚本仅在完成后且仅在失败时打印过程输出。

我的问题是有些 CI 需要每 X 分钟打印一次一些 stdout,而这个过程有时会花费比这 X 分钟更多的时间。

我正在尝试考虑 bash 解决方案:

  1. 运行该过程并将标准输出放在一边。
  2. 进程运行时,打印“.”每 X 秒发送一次标准输出 - 表示脚本仍在运行。
  3. 进程完成后,将能够获取其退出代码并相应地重新生成。

这是我开始写的:

run_process > output.txt 2>&1 & my_pid=$!
exited=0
while [ ${exited} -eq 0 ]
do
timeout wait 5s ${my_pid};exit_code=$?;exited=1
echo .
done

显然,那是行不通的,因为 timeout 无法获取一系列命令。您还有其他解决方案吗?

最佳答案

试试这个:

run_process > output.txt 2>&1 & my_pid=$!
while ps -p $my_pid > /dev/null; do
echo -n .
sleep 5
done

wait 获取退出值:

wait $mypid
echo $?

关于linux - 示例生成的进程处于事件状态并退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44436629/

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