Linux Screen Script (Fragen ob ein screen bereits läuft)?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
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.