Shellscript so starten das es weiterlaeuft?

Diskutiere Shellscript so starten das es weiterlaeuft? im Linux Forum im Bereich Linux; Moin irgendwie stehe ich gerade auf dem Schlauch. Ich starte auf einer Shell ein SH Script also eine .sh Datei. Wenn ich nun Puty beende wird...
#1
F

fremdisny

Threadstarter
Dabei seit
10.12.2002
Beiträge
233
Moin

irgendwie stehe ich gerade auf dem Schlauch. Ich starte auf einer Shell ein SH Script also eine .sh Datei. Wenn ich nun Puty beende wird auch das Script beendet.

Wie starte ich eine sh so dass sie auch beim beenden von Puty weiterlaeuft?? Irgendwie stehe ich da grad da wie bestellt und net abgeholt.


Uli
 
#2
HaraldL

HaraldL

Dabei seit
26.07.2006
Beiträge
5.761
Ort
Niederbayern
Du kannst jedes Kommando durch anhängen von " &" im Hintergrund laufen lassen. Dazu evtl. noch die Bildschirmausgabe in eine Datei umlenken damit man später kontrollieren kann ob ein Fehler aufgetreten ist. Beispiel:

cp -a /ordner1 /ordner2 >/var/log/cpscript.log 2>&1 &
Also das ">xxx" schreibt normale Ausgaben in die angegebene Datei, die feste Formel "2>&1" schreibt Fehlermeldungen (die 2 ist der Kanal dafür) in die selbe Datei (&1) und das zusätzliche "&" dahinter startet den Script im Hintergrund. Du bekommst sofort wieder den Eingabeprompt, kannst also ein anderes Kommando eingeben oder dich abmelden während der Script noch läuft. Ich habe im Beispiel den Kopierbefehl cp benutzt, genauso gut geht es aber auch mit Shellscripts.
 
#3
automatthias

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
7.557
Du musst das Kommando "nohup" verwenden.
Nähere Infos per man/info
 
#4
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
Jep, das geht nur so. Ich weiß nicht ob das mit dem & überhaupt funktioniert. Die Shell ist ja immer noch der Vaterprozess des Scriptinterpreters. Wenn man jetzt Putty zumacht, wird auch die Instanz der Shell beendet. Also entweder entsteht dadurch ein Zombie-Prozess, oder er wird wie jedes andere Script abgeschossen. (Tippe eher auf Zweiteres)
 
#5
J

jdr_85

Dabei seit
23.10.2005
Beiträge
1.665
Alter
34
Ich weiß ja nicht, was das auf der Gegenseite für ein Rechner ist, aber screen ist in dem Fall sehr nützlich. Guck doch einfach mal, ob es installiert ist und wenn ja, schau dir die manpages an ;).
Wenn es jetzt ein Router ist, der nur eine einfache busybox hat, kann man das natürlich vergessen :(.
 
#6
HaraldL

HaraldL

Dabei seit
26.07.2006
Beiträge
5.761
Ort
Niederbayern
Ich weiß nicht ob das mit dem & überhaupt funktioniert.
Doch, hundertprozentig, benutze ich seit Jahren mit diversen OpenSuse-Versionen. Ich habe auf etlichen Servern Backup-Scripts wo ich mich kurz per SSH einlogge, den Script mit "&" starte und gleich wieder auslogge. Anhand der Logdatei des Scripts sehe ich später auch daß der mehrere Stunden lief und korrekt beendet wurde, nicht schon beim Ausloggen.

Also entweder entsteht dadurch ein Zombie-Prozess, oder er wird wie jedes andere Script abgeschossen. (Tippe eher auf Zweiteres)
Nein, wenn der Script lange genug oder sogar endlos läuft und man sich später wieder einloggt während er noch läuft ist der Script in der Baumstruktur von "pstree" eine Stufe höher eingehängt, läuft dann also parallel zur (neuen) Shell.
 
#7
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
@HaraldL: Oha...naja, gut zu wissen. :blush ...hoffentlich ist das nicht nur beschränkt auf OpenSuse sondern ein generelles Feature der Bash...werde es mal am Wochenende selbst unter Debian ausprobieren. THX. ;)
 
#8
stpe

stpe

Dabei seit
14.11.2001
Beiträge
2.729
Der Sinn von nohup ist es, den aufgerufenen Prozess nicht an die Shell, sondern an init zu hängen. Die Konsole kann dann einfach zugemacht werden.

Eine weitere Variante ist das Tool screen. Dieses erlaubt, innerhalb einer Shell weitere aufzurufen, zwischen diesen zu wechseln oder diese im Hintergrund weiterlaufen zu lassen.
 
Thema:

Shellscript so starten das es weiterlaeuft?

Sucheingaben

bash script im hintergrund

,

linux shell programm im hintergrund starten

,

bash hintergrundprozess

,
linux script startet script mit &
, linux shell script hintergrund, ubuntu script im hintergrund starten, auf windows shell scripts laufenlasen, linux bash hintergrund starten, shell script in den hintergrund schicken, linux shell script im hintergrund starten, shell skript hintergrund, ubuntu bash script im hintergrundstarten, perl programm im hintergrund starten, linux sh skript im hintergrund starten

Shellscript so starten das es weiterlaeuft? - Ähnliche Themen

  • Beim Start erscheint der falsche Name

    Beim Start erscheint der falsche Name: Es erscheint eine Meldung, das Windows nicht gestartet werden konnte, weil der Benutzername falsch ist. Dafür steht dort mein Vorname Ulli. In...
  • SecurityHealthSystray.exe lässt sich nicht starten, kein Symbol im Infobereich

    SecurityHealthSystray.exe lässt sich nicht starten, kein Symbol im Infobereich: Hallo, ich habe vor ein paar Tagen auf meinem Notebook mit Windows 10 das 1809er Update eingespielt. Seit dem wird im Infobereich das Windows...
  • Startordner für Outlook ändern und Outlook mit Kalender oder Aufgaben statt E-Mail starten

    Startordner für Outlook ändern und Outlook mit Kalender oder Aufgaben statt E-Mail starten: Microsoft Outlook ist ein sehr gutes E-Mail Programm, kann aber eben noch viel mehr und ist für viele das wichtigste Tool im Office Paket da man...
  • GELÖST Shellscript bitte programieren das folgendes macht

    GELÖST Shellscript bitte programieren das folgendes macht: Hallo ich suche dafür ne kostenfreie Linuxalternative... Sysops, die an ihrer Mailbox-Konfiguration basteln, kennen das Problem: Änderungen...
  • GELÖST Java im Shellscript

    GELÖST Java im Shellscript: Hallo zusammen, ich suche einen Weg im Shellscript (Linux) mit Java zu programmieren. Beispiel für ein normales script: shellskript.sh...
  • Ähnliche Themen

    Oben