【问题标题】:How to stop one process and go to next process in shell script?如何在 shell 脚本中停止一个进程并转到下一个进程?
【发布时间】:2021-05-16 07:01:58
【问题描述】:

我有一个脚本可以在卫星和雷达图像上线时下载它们,然后将它们组合成卫星图像动画和雷达图像动画。我创建了两个单独的脚本来从卫星和雷达下载图像。我同时从 shell 脚本运行这些。

python ./rad/rad_retrieval.py; python ./sat/sat_retrieval.py

卫星和雷达图像每 30 分钟在线更新一次,因此这两个 python 脚本将每 30 分钟下载一次图像,直到我们停止该过程。第 2 部分,包含使用 ImageMagick 将每个卫星和雷达图像组合成动画/电影的代码。

# Part 1
echo starting...
python ./rad/rad_retrieval.py; python ./sat/sat_retrieval.py

# Part 2
#combining downloaded satellite images into video
cd /home/Cast/sat_retrieved
echo saving video for satellite images
convert -delay 50 20210516-*.jpg Satellite_retrieved.mp4
echo saving video : Success

#combining downloaded radar images into video 
cp Satellite_retrieved.mp4 /home/Cast/
cd /home/Cast/Radar_retrieved/
echo saving video for radar
convert -delay 50 20210516-*.gif Radar_retrieved.mp4
echo saving video : Success

这是我的脚本,我想在用户输入一段时间后停止第 1 部分,然后转到第 2 部分而不停止整个 shell 脚本。该怎么做?

【问题讨论】:

    标签: bash shell ubuntu


    【解决方案1】:

    您可以忽略 SIGTERM 并为 SIGINT 设置一个处理程序,以在其到达父 shell 时杀死子进程。这样用户可以简单地按 Ctrl-C 并跳过第一部分。

    # first part
    python ./rad/rad_retrieval.py &
    python ./sat/sat_retrieval.py &
    trap '' term
    trap 'kill 0' int
    wait
    trap - term int
    # second part
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-12
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      相关资源
      最近更新 更多