Github 操作取消 kill 命令的作业

Github actions canceling job on kill command

我是 运行 linux 后台脚本,使用:

python3 bot.py command &

在 github 操作部署期间,我正在使用:

kill $(pgrep -fi bot.py)

在重新开始之前取消上一个作业。

但是,当我这样做时...它会取消 github 操作作业并出现以下错误:

Process exited with status 137 from signal KILL

我该如何解决这个问题?

因此,kill <pid>SIGKILL signal & python 抛出 137 退出代码 (128 + 9)。

由于您手动执行此操作(不是因为系统资源紧缩),您可以输入 trap 来检查 137 退出代码并决定下一步操作。

#!/bin/bash

## catch the exit code & apply logic accordingly
function finish() {
  # Your cleanup code here
  rv=$?
  echo "the error code received is $rv"
  if [ $rv -eq 137 ];
  then
    echo "It's a manual kill, attempting another run or whatever"
  elif [ $rv -eq 0 ];
  then
    echo "Exited smoothly"
  else
    echo "Non 0 & 137 exit codes"
    exit $rv
  fi
}

pgrep -fi bot.py
if [ $? -eq 0 ];
then
  echo "Killing the previous process"
  kill -9 $(pgrep -fi bot.py)
else
  echo "No previous process exists."
fi
trap finish EXIT