-
Notifications
You must be signed in to change notification settings - Fork 0
/
start2.sh
57 lines (42 loc) · 1.2 KB
/
start2.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/bash
set -euo pipefail
# Kompilieren Sie C-Dateien
if gcc Temperatur.c -o Temperatur -lm && gcc steurung.c -o steurung && gcc main.c -o main; then
echo "Compilation réussie."
else
echo "Kompilierungsfehler. Stoppen des Skripts."
exit 1
fi
#Sensorvorgang starten
./Temperatur &
# Warten Sie kurz, damit der Sensor starten kann
sleep 5
# Starten Sie den Kontrollvorgang
./steurung &
# Warten Sie kurz, damit der Regelvorgang beginnen kann
sleep 5
# Hauptprozess starten
./main &
# Überwachen Sie laufende Prozesse
while :
do
# Überprüfen Sie, ob noch Prozesse ausgeführt werden
if ! pgrep -x "tempo" || ! pgrep -x "steurung" || ! pgrep -x "main"; then
echo "Un des processus s'est arrêté."
break
fi
#Überprüfen Sie, ob das Skript gestoppt wurde (z. B. STRG+C)
if [[ ! -e /proc/$$/status ]]; then
echo "Arrêt du script."
# Beenden Sie alle untergeordneten Prozesse
pkill -P $$
break
fi
# Warten Sie, bevor Sie die Überprüfung erneut durchführen
sleep 1
done
# Warten Sie, bis die untergeordneten Prozesse abgeschlossen sind
wait
# Bereinigen Sie ggf. temporäre Dateien
# ...
echo "Script terminé."