Untitled
unknown
sh
9 months ago
1.4 kB
6
Indexable
#!/bin/bash
OUTPUT_FILE="processes.txt"
C_PROGRAM="it2023135"
C_SOURCE="it2023135.c"
# Συνάρτηση καθαρισμού για ομαλό τερματισμό
cleanup() {
echo "Terminating gracefully..."
PID=$(pgrep -x "it2023135")
if [ -n "$PID" ]; then
kill -SIGINT "$PID" 2>/dev/null
fi
exit 0
}
# Καταχώρηση signal SIGINT για καθαρό τερματισμό
trap cleanup SIGINT
while true; do
# Εκτέλεση της εντολής ps και αποθήκευση των 10 διεργασιών με τη μεγαλύτερη χρήση CPU
ps -eo pid,pcpu,pmem,rss,vsize,stat,ppid --sort=-%cpu | head -11 > "$OUTPUT_FILE"
# Έλεγχος για zombie διεργασίες και τερματισμός του parent τους
awk '$6 ~ /Z/ {print $7}' "$OUTPUT_FILE" | while read -r PPID; do
if [ -n "$PPID" ]; then
echo "ZOMBIE PROCESS ALARM: Parent process to kill: $PPID"
kill -9 "$PPID" 2>/dev/null
fi
done
# Μεταγλώττιση του προγράμματος σε C
gcc -o "$C_PROGRAM" "$C_SOURCE" -lpthread -Wall -Wextra -g
if [ $? -eq 0 ]; then
./"$C_PROGRAM"
else
echo "Compilation failed. Exiting..."
exit 1
fi
sleep 30
doneEditor is loading...
Leave a Comment