我正在使用 Heroku 的 Scheduler 插件和一个简单的 shell 脚本来执行预定的 dyno 重启。 “restart.sh”脚本的代码如下:
echo "Restart in 2 minutes"
sleep 60
echo "Restart in 1 minute"
sleep 60
echo "Restart..."
curl -n -X DELETE https://api.heroku.com/apps/{APP-NAME}/dynos -H "Content-Type: application/json" -H "Accept: application/vnd.heroku+json; version=3" -H "Authorization: Bearer {TOKEN}"
脚本然后由调度程序使用以下命令执行:
chmod +x restart.sh ; ./restart.sh
通常,当 heroku 自动重新启动一个 dyno 时,会在 30 秒后杀死进程之前发送一个 SIGTERM 信号。
现在我想扩展我的计划重启脚本,以便在实际重启 dynos 之前也发送一个 SIGTERM 信号。
据我所知,我必须识别进程,然后使用 kill
命令发送信号。但我无法弄清楚如何做到这一点。大家有什么建议吗?
提前致谢并致以最诚挚的问候
酷巴