Hallo guude4.
guude4 schrieb:
Vielleicht habe ich mich ungünstig ausgedrückt , aber den Neustart / das offenen eines weiteren Fensters der Programm mochte ich verhindern,
Dann würde ich im Skript eine Abfrage einbauen.
Variante 1: Du prüfst, ob eine Datei /tmp/Programme_gestartet_Benutzername.lock existiert. Falls dem nicht so ist, werden die Programme gestartet und die Datei angelegt. Sonst nicht:
| #!/bin/bash
if [ ! ( -e /tmp/Programme_gestartet_Benutzername.lock ) ]
then
prog1 &
prog2 &
prog3 &
touch /tmp/Programme_gestartet_Benutzername.lock
fi
|
Variante 1b: Du kannst natürlich auch noch das aktuelle Datum in die Datei schreiben, falls die temporäre Datei einmal nicht gelöscht werden sollte:
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 | #!/bin/bash
if [ ! ( -e /tmp/Programme_gestartet_Benutzername.lock ) ]
then
prog1 &
prog2 &
prog3 &
date +"%d;%m;%Y" > /tmp/Programme_gestartet_Benutzername.lock
else
tagLock=$(cut -d ";" -f 1 /tmp/Programme_gestartet_Benutzername.lock)
monatLock=$(cut -d ";" -f 2 /tmp/Programme_gestartet_Benutzername.lock)
jahrLock=$(cut -d ";" -f 3 /tmp/Programme_gestartet_Benutzername.lock)
tag=$(date +"%d")
monat=$(date +"%m")
jahr=$(date +"%Y")
if [ tag != tagLock ]
then
prog1 &
prog2 &
prog3 &
date +"%d;%m;%Y" > /tmp/Programme_gestartet_Benutzername.lock
elif [ monat != monatLock ]
prog1 &
prog2 &
prog3 &
date +"%d;%m;%Y" > /tmp/Programme_gestartet_Benutzername.lock
elif [ jahr != jahrLock ]
prog1 &
prog2 &
prog3 &
date +"%d;%m;%Y" > /tmp/Programme_gestartet_Benutzername.lock
fi
fi
|
Siehe zum Verständnis bitte den Bash-Skripting-Guide für Anfänger.
Variante 2: Du kannst anstatt einer Datei auch eine Variable setzen und mit export
verfügbar machen. Das hat aber den Nachteil, dass du dich darum kümmern musst, dass diese beim Abmelden oder Herunterfahren auch wieder entfernt wird.
Das mal so als Denkanstöße von mir.
Viele Grüße
Vej
PS.: Die Skripte sind ungetestet.
PPS: Bei Variante 1b kannst du natürlich den wiederkehrenden Teil in einer Funktion zusammenfassen.