.titleBar { margin-bottom: 5px!important; }

Script läuft doppelt

Dieses Thema im Forum "Freetz" wurde erstellt von VirtuellOriginell, 5 Jan. 2019.

  1. VirtuellOriginell

    VirtuellOriginell Neuer User

    Registriert seit:
    11 Sep. 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Ich starte ein Script als Cronjob, welches immer doppelt ausgeführt wird. Einmal von der Bash und einmal von der Busybox. Das sieht dann so aus:
    Code:
    30857 root      1376 S    /bin/sh -c sh /var/media/ftp/USB-Speicher11/FRITZ/scripte/test.sh
    30858 root      1372 S    {busybox} sh /var/media/ftp/USB-Speicher11/FRITZ/scripte/test.sh 
    Wie kann ich das unterbinden? Vorzugsweise sollte es nur unter der Bash laufen, diese kann ich einfacher debuggen.
     
  2. Benares

    Benares Aktives Mitglied

    Registriert seit:
    15 Jan. 2006
    Beiträge:
    2,133
    Zustimmungen:
    21
    Punkte für Erfolge:
    38
    Ort:
    Pfalz
    Das liegt an der Art, wie du das Script startest.
    Mit "/bin/sh -c sh ..." startest du eine Shell, die eine neue Shell startet, die dann das Script ausführt. Das Script läuft nicht doppelt.
    Lass einfach das 2. "sh" weg, also "/bin/sh -c /var/..."
     
  3. VirtuellOriginell

    VirtuellOriginell Neuer User

    Registriert seit:
    11 Sep. 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    das "/bin/sh -c sh" kommt nicht von mir, das macht freetz selbst. Habe jetzt jetzt im crontab den Scriptaufruf ohne vorgestelltes "sh" gemacht, ausgeführt wird das Script nur die Ausgabe von ps hat sich geändert.
    Code:
    24748 root      1376 S    /bin/sh -c /var/media/ftp/USB-Speicher11/FRITZ/scripte/test.sh
    24749 root       576 S    {test} /bin/bash /var/media/ftp/USB-Speicher11/FRITZ/scripte/stream-test.sh
    
    was hat das mit den geschweiften Klammern auf sich?
    Wenn ich das Script händisch starte schaut die Ausgabe von ps so aus
    Code:
    26468 root      1384 S    {busybox} sh test.sh 
     
  4. Benares

    Benares Aktives Mitglied

    Registriert seit:
    15 Jan. 2006
    Beiträge:
    2,133
    Zustimmungen:
    21
    Punkte für Erfolge:
    38
    Ort:
    Pfalz
    Das kann ich dir nicht sagen. Wenn das Script ausführbar ist (x-Rechte hat) und mit einem Shebang (#!/bin/sh) beginnt, sollte es auch ohne "sh" davor laufen. Aber egal, es wird in keinem Fall "doppelt" ausgeführt.
     
  5. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,765
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    In deinem ersten Schnipsel wurde ja aber 2x die Shell mit test.sh aufgerufen. Im zweiten Schnipsel wird zudem noch das Skript stream-test.sh (aus test.sh) ausgeführt. In geschweiften Klammern steht doch vermutlich der Name des Aufrufenden Prozesses/Binaries oder sowas...

    Gruß,
    Oliver