Linux Screen Script (Fragen ob ein screen bereits läuft)?
Guten Tag,
ich wollte mal fragen wie (und ob das überhaupt möglich wäre xp) man am besten abfragen kann ob ein screen läuft in ein Script ein bauen kann, das dieser z.b. jede Sekunde überprüft ob nur ein Screen läuft oder das wenn mehr als 2 laufen er einen beenden soll.
1 Antwort
abfragen kann ob ein screen läuft
Du kannst mit -ls oder -list alle screen Sessions ausgeben lassen:
screen -ls
jede Sekunde überprüft ob nur ein Screen läuft
Du könntest dir ein systemd Script (z.B. wenn das Script automatisch beim Booten gestartet werden soll) mit Timer schreiben, oder du benutzt while mit sleep:
while [ true ]
do
sleep 1
# mach was
done
wenn mehr als 2 laufen er einen beenden soll
Überprüfe wieviele Sessions screen -ls ausgibt und sende einer Session einen kill Befehl bei mehr als zwei.
Beispiel - beende alle bis auf die ältesten Sessions, solange es mehr als zwei gibt (Bei 4 werden 2 beendet):
while [ `screen -ls | wc -l` -gt 4 ]
do
screen -S `screen -ls | awk 'NR==2 {print $1}'` -X kill
done
Anderes Beispiel - beende nur die neueste Session, wenn es mehr als zwei gibt (Bei 4 wird eine beendet):
if [ `screen -ls | wc -l` -gt 4 ]
then
screen -S `screen -ls | awk 'NR==2 {print $1}'` -X kill
fi
Weitere Infos kannst du in den jeweiligen manpages nachlesen.