• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Shell Script Fehler ?!?

Hallo erstma,

Hab da nen Problem und zwar mochte ich ein php script durch ein shell script jede sekunde einmal aufrufen aber irgendwie klappt es nicht
weil das shellscript nicht in der richtigen reihenfolge abgearbeitet wird !

Wenn jemand ne Idee hat woran es liegt BITTE posten!


#!/bin/sh
funktion()
{
lynx http://62.143.51.59/defrag.php &
lynx_pid=$!
echo der PID ist $lynx_pid
sleep 3
kill -9 $lynx_pid
chmod 777 defrag_rcon.sh
defrag_rcon.sh
rm defrag_rcon.sh
funktion
}
funktion

hier die ausgabe der Funktion :

HTTP Request geschickt; warten auf Antwort.

./defrag.sh: line 8: kill: (20203) - Kein passender Prozess gefunden
chmod: konnte Attribute von »defrag_rcon.sh« nicht holen: Datei oder Verzeichnis nicht gefunden
./defrag.sh: line 10: defrag_rcon.sh: command not found
rm: Entfernen von »defrag_rcon.sh« nicht möglich: Datei oder Verzeichnis nicht gefunden
der PID ist 20211

SO das wars und man sieht das die PID von dem letzten durchlauf der schleife ist und nicht die aktuelle und das kill die alte PID vom durchlauf davor benutzt und sowieso macht der nichts in der reihenfolge wie es im Scriptz steht !

DANKE für jede Hilfe !!!
 
muß denlynx aber im hintergrund starten damit das script weiterläuft aber so geht es nicht noch ne idee ?

So geht es nicht :

lynx http://62.143.51.59/defrag.php & && lynx_pid=$!
 
oops, da hatte ich dich missverstanden, sorry

Code:
#!/bin/sh
funktion()
{
      lynx http://62.143.51.59/defrag.php &  # lynx starten
      lynx_pid=`pidof lynx`                                # pid ermitteln
      echo der PID ist $lynx_pid
      sleep 3
      kill -9 $lynx_pid                                            # lynx killen
      if [ -f defrag_rccon.sh ]; then                    # test ob Datei vorhanden
          chmod 777 defrag_rcon.sh                   # ausführbar machen
          ./defrag_rcon.sh                                      # mit ./ weil nicht im Pfad !!
          rm defrag_rcon.sh                                   # löschen
     fi
}

while [ TRUE ]; do
    funktion 
done
 
Oben