Script läuft doppelt

  • Ersteller Ersteller VirtuellOriginell
  • Erstellt am Erstellt am
V

VirtuellOriginell

Guest
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.
 
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/..."
 
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
 
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.
 
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
 
Kostenlos!

Statistik des Forums

Themen
248,916
Beiträge
2,304,980
Mitglieder
378,630
Neuestes Mitglied
dag74