Hallo Leute, Ich wollte das Programm starten was lange benötigt im Hintergrund laufen lassen. Wenn ich aber das Putty Terminal schliesse, wird die Anwendung auch geschlossen. Wie ich das bemerkt habe? Ein zweites Terminal mit HTOP geöffnet. Programm läuft. Erstes Terminalfenster, wo das Programm gestartet wird geschlossen. Programm ist im HTOP weg :-( System: Rasperry PI 3 Raspian Jessie Programm wurde per sudo bash -c " " gestartet (Brauche ich wegen den Schreibrechten) Wer kann mir da weiterhelfen?
An den befehl einfach ein "&" anhängen. Dadurch läuft der prozess nicht mehr im terminal sondern im Hintergrund. Das ist jedoch nichts raspberry spezifisches sondern linux Grundwissen
Programm starten -> "ctrl-z" drücken -> "bg" eingeben
Man nohup
Das & zeichen führt Prozesse im Hintergrund aus. manche Programme mögen es aber gar nicht, wenn das Fenster weg ist, in das sie Ausgaben machen wollen. Dann brechen sie ab. Das wiederhum kann man mit "nohup" verhindern.
man screen
Mosh wäre auch eine Möglichkeit
bin für screen -dmS <screenName> <kommando>
nohup und ein & am Ende bewirkt Wunder :-) Problem gelöst.Dankeschön :-)
ich gehe mal auf das "warum" ein. das programm das du gestartet hast will einen ausgabestream haben, also eine konsole, ein terminal, irgendetwas das STDOUT und STDERR bereitstellt. wenn du diesen ausgabestream abwürgst, endet das programm weil es nichts mehr wegschreiben kann. "nohup" bietet diese ausgabestreams an, und du kannst sie in eine (log) datei umleiten.
1 | nohup "BEFEHL parameter" >/pfad/logfile.txt 2>&1 & |
"screen" bietet diese ausgabestreams auch an, du kannst dich aber an die ausgabe"screens" mit einer console wieder verbinden.
1 | screen -R #erzeugt neue screen session |
2 | BEFEHL parameter |
3 | [CTRL]-a-d #"detached" screen |
4 | screen -r #reattach zu dieser screen session |
nohup ist einfacher, screen ist mächtiger :)
Pete K. schrieb: > Programm starten -> "ctrl-z" drücken -> "bg" eingeben nohup schrieb: > Man nohup nicht"Gast" schrieb: > bin für screen -dmS <screenName> <kommando> Ja das liebe ich so an Linux: Die herrlich einfachen Lösungen. Keine drei Stunden des Handbuchlesens später hat man eine Lösung die unter Windows einfach so funktioniert. Mit einem Klick.
Linux? schrieb: > Mit einem Klick. Unter Windows kannst du einfach so mit einem Klick ein Programm starten, was nach dem Logout weiterläuft? Na dann schieß mal los.
@c.m.: Ein Teil der Wahrheit fehlt noch, mit der sich der Name nohup erklärt. Wenn ein Terminal beendet wird, erhalten alle im Terminal gestarteten Programme ein SIGHUP (Signal Hang Up). Die Defaul Aktion dafür ist terminieren, wenn das Programm es nicht selbst im Code abfängt/behandelt. nohup sorgt dafür, dass das durch nohup gestartete Programm sich nicht durch SIGHUP beendet.
Andreas E. schrieb: > SIGHUP TY, garnicht dran gedacht :) jetzt muss ich direkt mal testen was passiert wenn ich ein script mit "trap SIGHUP" in einer konsole starte, und diese dann beende… hmmm?
Andreas E. schrieb: > @c.m.: > Ein Teil der Wahrheit fehlt noch, mit der sich der Name nohup erklärt. > > Wenn ein Terminal beendet wird, erhalten alle im Terminal gestarteten > Programme ein SIGHUP (Signal Hang Up). Die Defaul Aktion dafür ist > terminieren, wenn das Programm es nicht selbst im Code > abfängt/behandelt. > > nohup sorgt dafür, dass das durch nohup gestartete Programm sich nicht > durch SIGHUP beendet. das wird in Zukunft aber nicht mehr reichen. http://www.golem.de/news/aufraeumen-von-prozessen-beim-logout-systemd-neuerung-sorgt-fuer-nutzerkontroversen-1605-121176.html
Linux? schrieb: > Ja das liebe ich so an Linux: Die herrlich einfachen Lösungen. Keine > drei Stunden des Handbuchlesens später hat man eine Lösung die unter > Windows einfach so funktioniert. Mit einem Klick. Wenn man keine Ahnung hat, einfach mal ...
Linux? schrieb: > Ja das liebe ich so an Linux: Die herrlich einfachen Lösungen. Keine > drei Stunden des Handbuchlesens später hat man eine Lösung die unter > Windows einfach so funktioniert. Mit einem Klick. Du weißt schon, dass es für Linux auch Programme gibt, die man mit einem Klick ausführt? Nur dass Linux über die Konsole viele Möglichkeiten zur Verfügung stellt, die unter Windows nicht so ohne weiteres möglich sind. Und für dass man bei mächtige Werkzeugen wissen muss, was man tut, ist die logische Konsequenz daraus. Oder kurz gesagt: Einen Phasenprüfer kann man ohne allzu großes Hintergrundwissen verwenden, mit einem Oszilloskop am Netz sinnvoll und gefahrlos zu messen erfordert wesentlich mehr Wissen... Gruß von einem Linux-Fan, der trotzdem für bestimmte Aufgaben u.a. Windows verwendet und auch schätzt.
c.m. schrieb: > Andreas E. schrieb: >> SIGHUP > > TY, garnicht dran gedacht :) > > jetzt muss ich direkt mal testen was passiert wenn ich ein script mit > "trap SIGHUP" in einer konsole starte, und diese dann beende… hmmm?
1 | #!/bin/bash
|
2 | trap "echo nope" SIGINT SIGTERM SIGHUP |
3 | while :
|
4 | do
|
5 | sleep 60 |
6 | done
|
jop, rennt weiter, lässt sich nur über "kill -9" (SIGKILL) beenden. feinerle :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.