Shellscript zum Starten / Stoppen von Programmen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von kuehlmeister, 17.03.2006.

  1. #1 kuehlmeister, 17.03.2006
    kuehlmeister

    kuehlmeister Grünschnabel

    Dabei seit:
    02.11.2005
    Beiträge:
    6
    Zustimmungen:
    0
    Folgendes Problem

    Ich habe ein Terminalprogramm, welches einmal am Tag gestartet wird und auf einem bestimmten Port auf Daten wartet.
    Diese werden dann in eine .txt Datei geschrieben. Die Datei trägt immer das aktuelle Datum.

    Nun läuft das Programm den ganzen Tag, abends soll es sich beenden und am nächsten Tag wieder starten und somit
    eine neue tagesaktuelle Datei erstellen. Im Moment mache ich das noch händisch, d.h. ich starte und stoppe das Script
    täglich immer selber. Nur steht demnächst Urlaub an, und da muss das automatisch laufen.

    Hier mal das Terminalscript:

    #!/bin/sh
    clear
    echo '************************************'
    echo '** Fenster unbedingt offen halten **'
    echo '** Drucktestanlage 1 in Betrieb **'
    echo '************************************'
    touch werte/anlage1_drucktest_`date +%Y%m%d`.txt
    chmod 777 werte/anlage1_drucktest_`date +%Y%m%d`.txt
    telnet 192.168.0.102 10001 > werte/anlage1_drucktest_`date +%Y%m%d`.txt

    Das funktioniert soweit.

    Nun möchte ich eine Automatik haben, welche das Script dann abends wieder beendet und neu startet.
    Dachte vielleicht an ein 2tes Script, welches ein ps -ax macht, die Zeile mit dem Terminal sucht und den Prozess killt.
    Daran scheiter ich allerdings.

    Geht bestimmt auch eleganter, nur weiss ich leider nicht wie.

    Danke schonmal!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. maxix

    maxix Eroberer

    Dabei seit:
    16.03.2006
    Beiträge:
    74
    Zustimmungen:
    0
    Hallo Kühlmeister
    man 5 crontab
    Dort kannst Du Zeiten und Programme eintragen. der Cron Dämon (crond) sollte dafür laufen.
    Gruss
    maxix
     
  4. #3 kuehlmeister, 17.03.2006
    kuehlmeister

    kuehlmeister Grünschnabel

    Dabei seit:
    02.11.2005
    Beiträge:
    6
    Zustimmungen:
    0
    ok danke, das werde ich mal probieren. Stoppt der das Script dann auch wieder oder lässt der das durchlaufen?
     
  5. maxix

    maxix Eroberer

    Dabei seit:
    16.03.2006
    Beiträge:
    74
    Zustimmungen:
    0
    wenn Du da keine Endlosschleife in Deinem Script hast, ja.
    Oder anders: starte mal Dein Script, wenn es sich beendet, dann lautet die Antwort, ja.

    Gruss
    maxix
     
  6. #5 Wolfgang, 17.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Natürlich startet oder stoppt der cronjob von sich aus keinerlei Programme.
    Der cronjob führt ledig die dort eingetragenen Programme/Skripte in der dafür eingetragenen Periode aus.
    Du müstest also entweder ein Skript für den Start und eines für den kill erstellen, oder beides in das gleiche Script schreiben und dabei prüfen ob das Script läuft.
    Läuft es, wird beendet - läuft es nicht, wird gestartet.

    Die einfache Variante ist wohl die erste.

    Zum Beenden könntest du einfach pkill verwenden.
    pkill -x "myscript" mit pkill hast du den Vorteil, dass du direkt den Namen statt der ID angeben kannst.

    Natürlich kannst du auch mit folgender Zeile die ID ermitteln (Programm läuft):
    MYID=$(ps ax|grep "kriptname"|cut -d" " -f2)
    und dann per kill das Programm beenden ->wenn $MYID nicht leer ist...
    Beispiel:
    Code:
    
    [b]
    /usr/bin/bash
    #Path kann auch in der crontab festgelegt werden
    PATH=/usr/bin:/path/zum/Programm/:/path/zu/den/benoetigten/programmen;
    MYID=$(ps ax|grep "[s]kriptname"|cut -d" " -f2);     
    if [ -n $MYID ];
    then
    echo "Programm läuft mit ID $MYID und wird gekillt";
    kill $MYID;
    unset $MYID;
    
    else
    echo "Programm läuft nicht wird gestartet";
    /path/zum/Programm/
    #prüfen ob der Start geklappt hat usw.
    ...
    fi
    [/b]
    
    Den Rest kannst du dir erlesen in
    man crontab
    man kill
    man pkill

    ;)
    Gruß Wolfgang
     
  7. #6 kuehlmeister, 17.03.2006
    kuehlmeister

    kuehlmeister Grünschnabel

    Dabei seit:
    02.11.2005
    Beiträge:
    6
    Zustimmungen:
    0



    danke, damit hats geklappt. hab nun ein extrascript gebastelt welches per cron aufgerufen wird und das checkt. :D
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Shellscript zum Starten / Stoppen von Programmen
Besucher kamen mit folgenden Suchen
  1. shell script starten stoppen

    ,
  2. programme im shell skript stoppen linux

    ,
  3. Linux Skript zum Starten und beenden von Programm

Die Seite wird geladen...

Shellscript zum Starten / Stoppen von Programmen - Ähnliche Themen

  1. shellscript 100mal parallel starten

    shellscript 100mal parallel starten: Morgen. Kann ich ein und dasselbe bash , bzs phpcli Script 100 mal parallel starten ? Ich weiß dass ich Prozesse , bzw Forks starten kann...
  2. Shellscript für rotierende Datensicherung

    Shellscript für rotierende Datensicherung: Hallo, ich beschäftige mich erst seit ein paar Wochen mit der Shell und habe mich entschlossen meine ersten Scripterfahrungen in diesem kleinen...
  3. Shellscript unerwartetes Dateiende

    Shellscript unerwartetes Dateiende: Hallo zusammen, folgendes Script führe ich in einer .bat via cygwin und curl aus. Beim Ausführen erhalte ich die einen Syntaxfehler:...
  4. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...
  5. Variable aus ShellScript in Latexvorlage einfügen

    Variable aus ShellScript in Latexvorlage einfügen: Hallo, wie kann ich Variablen aus einem Shellscript an bestimmte Stellen in eine Vorlage einfügen. Sollte ich dafür spezielle Platzhalter in...