sidecar_killer.sh 583 B

12345678910111213141516171819202122
  1. #!/bin/sh
  2. # Sends termination signal to other sidecar pods, meant to run as a pre-stop hook
  3. # or called by ./job_killer.sh.
  4. #
  5. # Usage: ./sidecar_killer.sh [target_process]
  6. sidecar_pid=$(pgrep $1)
  7. if [ -n "$sidecar_pid" ]; then
  8. kill -TERM $sidecar_pid
  9. # schedule hard kill after 30 seconds
  10. (sleep 30; kill -9 -${sidecar_pid} 2>/dev/null || true) &
  11. killer=${!}
  12. # wait for processes to finish
  13. wait ${sidecar_pid} 2>/dev/null || true
  14. # children exited gracefully - cancel timer
  15. sleep 0.1 && kill -9 ${killer} 2>/dev/null && target_pid="" || true
  16. fi