Created
April 20, 2016 14:42
-
-
Save kikegarcia/0a923fe4b90d88eb20af6a29d5d29f29 to your computer and use it in GitHub Desktop.
Kill process if given process name and duration is more than X minutes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
PROC_NAME="sync/cli/cron.php" | |
FECHA=$(date +%Y%m%d) | |
BASE_LOG="/CODE/logs/operaciones/unblock_sync_v2_${FECHA}.log" | |
# bucle con pids que coinciden con el nombre del proceso | |
for pid in $(ps -fe | grep $PROC_NAME | grep -v grep | awk '{print $2}'); do | |
# Recoge el tiempo que lleva corriendo y limpiamos de simbolo : | |
time=(`ps -o etime $pid | sed -e 's/[:-]/ /g'`) | |
# Obtiene los minutos limpios | |
min=${time[1]} | |
# Si dura más de 75 minutos, matar el proceso | |
if [ "$min" -gt "75" ]; then | |
process_info=(`cat /proc/$pid/cmdline`) | |
echo "[$FECHA] $process_info" >> $BASE_LOG | |
echo "[$FECHA] Duracion proceso con PID: $pid -> Minutos: $min" >> $BASE_LOG | |
kill -9 $pid | |
fi | |
done; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment