Skript soll nicht doppelt laufen... kill pkill pid cron

Diskutiere Skript soll nicht doppelt laufen... kill pkill pid cron im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo zusammen, per cron möchte ich ein bash-Skript einfach stündlich (neu)starten. Da das Bash-Skript eine while true Schleife enthält und es...

  1. #1 Programmer78, 27.04.2020
    Programmer78

    Programmer78 Doppel-As

    Dabei seit:
    28.11.2007
    Beiträge:
    134
    Zustimmungen:
    3
    Hallo zusammen,

    per cron möchte ich ein bash-Skript einfach stündlich (neu)starten. Da das Bash-Skript eine while true Schleife enthält und es daher endlos läuft und im Hintergrund geschickt wurde, soll der Vorläufer bei der nächsten cron-Fälligkeit per kill oder pkill beendet werden, funktioniert bei mir aber nicht.

    Mit vorherigem export der pid in eine Datei oder einfaches parsen aus der Prozessliste mit ps aux | grep Skriptname | grep -v grep bekomme ich zwar die PID, aber diese kann ich nicht beenden.

    Weder kill $pid, kill -9 $pid oder kill -l 15 $pid funktionieren. "kill" führt den Befehl zwar aus und kill gibt aus, der Prozess mit der PID sei tatsächlich beendet, ist er aber nicht. Per ps aux oder mit htop ist der Prozess immer noch sichtbar und läuft auch noch.

    Habe jetzt gesehen, dass die PID um -1 versetzt sein kann, wenn man pipes im Skript verwendet hat.

    Code:
     cat testscript.sh
    #! /bin/bash
    
    echo $$
    
    while true; do
    
    printf "Script läuft noch.. PID $$\n"
    sleep 20
    
    done &
    
    Wie macht man das richtig? Wie beende ich obiges Skript mit allen Kindprozessen?

    Ausführung per cron:
    sh testscript.sh
    sh testscript.sh

    Altes Skript soll beendet werden, die neue Instanz gestartet werden.

    Brauche hier einen Denkanstoß, danke.

    Gruß

    P.
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Skript soll nicht doppelt laufen... kill pkill pid cron

Die Seite wird geladen...

Skript soll nicht doppelt laufen... kill pkill pid cron - Ähnliche Themen

  1. Zwei Skripte sollen nicht zeitgleich laufen

    Zwei Skripte sollen nicht zeitgleich laufen: Hallo zusammen, ich habe zwei Skripte: script1.ksh und script2.ksh Diese beiden Skripte sollen nicht zeitgleich laufen. Beide Skripte...
  2. Ein Skript soll ein anderes beenden..

    Ein Skript soll ein anderes beenden..: Hallo, ich versuche meinem Script gerade eine Update-Funktionalität beizubringen. Ich versuche es mal so zu erklären: Aus dem Script 1...
  3. Shell-Skript soll nach Abmeldung des Benutzers weiterlaufen

    Shell-Skript soll nach Abmeldung des Benutzers weiterlaufen: Hi, Ich habe ein Shell-Script geschrieben, dass auf einem Server laufen soll. Diesen erreiche ich per ssh. Das Skript kann unter Umständen...
  4. Shellskript soll Verzeichnisse rekursiv 'abarbeiten'

    Shellskript soll Verzeichnisse rekursiv 'abarbeiten': Hallo, ich habe ein kleines Shellskript, mit dem ich aus wav-Dateien mp3-Dateien erstelle. Dazu kopiere ich es immer in das Verzeichnis mit den...
  5. Skript erstellt File, soll nach 1 Monat wieder löschen

    Skript erstellt File, soll nach 1 Monat wieder löschen: Hallo! Ich hätte eine Frage, wie könnte ich ein Skript schreiben, der erstellt eine Datei, und soll sie wieder löschen. Z. B: rsync -urv >...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden