Shellscript alle 10 sekunden ausführen?

6 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Falls du systemd hast, kannst du eine neue .service-Datei in /etc/systemd/system erstellen:

[Unit]
Description=Irgendeine Beschreibung

[Service]
ExecStart=/pfad/zum/script.sh
User=Nutzer, mit dem das Script ausgeführt werden soll
Type=simple
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Anschließend den Dienst aktivieren und starten:

systemctl enable DIENSTNAME
systemctl start DIENSTNAME

GolanX 
Beitragsersteller
 19.08.2020, 17:50

Funktioniert, Danke

Weiteres Shell-Skript, welches alle 10 Sekunden das Skript startet.

Woher ich das weiß:Studium / Ausbildung

GolanX 
Beitragsersteller
 08.08.2020, 03:43

Danke werd ich später mal ausprobieren

wenn es auch eine andere Shell sein darf, dann benutze die tclsh

#!/bin/bash
# \
exec tclsh "$0" "$@"

danach z.B.

while {1} {puts Time=[clock format [clock seconds] -format %S]
                  after 10000
}

die 10000 ist die Zeit im ms bis zum Wiederaufruf der Ausgabe puts ...

clock format .... ist nur ein Beispiel, um zu zeigen, dass immer 10 Sekunden vergehen.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Möglicherweise liegt es an einem Designfehler, dass dein Shellshript alle 10 sec ausgeführt werden muss.

Wenn man wüsste, was du vorhast gäbe es vielleicht andere Lösungen.

Woher ich das weiß:eigene Erfahrung

GolanX 
Beitragsersteller
 09.08.2020, 19:26

Mein raspi verliert die inetverbindung unregelmäßig Wenn ich networkmanager neustarte gehts wieder also benutze ich n script falls ping fehlschlägt networkmanager neustarten

Lg

Du kannst doch den Inhalt des Skriptes in eine Schleife packen, sie ausführen und dann am Ende 10 Sekunden warten, oder geht das nicht?!


GolanX 
Beitragsersteller
 08.08.2020, 03:43

Danke probier ich später mal aus

GedankenGruetze  08.08.2020, 03:45
@GolanX
#!/bin/bash

while :
do
  IRGENDEINEN Blödsinn
  sleep 10
done

In der Whileschleife wird also irgendwas gemacht und dann 10 Sekunden geschlafen!