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
我是 运行 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