programme geöffnet lassen, obwohl die bash geschlossen wird
hallo
ich hab nen root-server, den ich per ssh steuere.
bisher hatte ich auch nur deamons laufen, die ja auch weiterlaufen, wenn man die bash schliesst, jetzt hab ich aber nen normales programm.
nun kann ich ja nicht ständig den ssh client offen lassen.
also wie schaffe ich es, daß die programme am laufen bleiben, obwohl ich die ssh-verbindung und damit die bash schliesse?
vielen dank im vorraus.
Ihr seid ja nur neidisch, weil ich der einzige bin, zu dem die leisen Stimmen sprechen! TweakPC IRC Channel: #tweakpc im Quakenet (irc.quakenet.org) Satzzeichen folgen direkt hinter einem Wort. Es ist kein Leerzeichen dazwischen!
Du startest Programme auf dem entfernten Root-Server, die dann auf deinem Bildschirm angezeigt werden. Wenn du die Verbindung schließt, dann können die Programe doch nicht offen bleiben. Wie sollen die dann noch Daten austauschen?
naja ist das nicht die funktion eines rootservers? daß er programme ausführt für die man selber nicht genug bandbreite hat, oder die nicht ständig von dem dsl reconnect beeinflusst werden sollen.
da isses doch sinnlos, daß man für jeden mist ne bash auf dem steuernden rechner offen haben muss.
klares beispiel teamspeak... ist nen deamon, also starte ich den, schliesse die ssh-verbindung und das ding läuft trotzdem weiter und man kann es benutzen....
normale andere programme werden sofort geschlossen, wenn man die bash schliesst.
und das will ich ja gerade nicht....
du willst Programme auf dem anderen Server starten, sprich ein Emule (mit X11-Fenster) oder öhnliches? Wenn du das machen willst, musst du den anderen PC fernsteuern ... beispielsweise via VNC. Damit loggst du dich ein und es wäre als ob du am PC sitzen würdest.
nein... der rechner am anderen ende hat kein x11. der läuft nur kommandozeilenmässig.
mit ssh steuere ich den doch fern. eine ssh verbindung öffnet mir hier ein fenster, bzw eine kommandozeile, die quasi eine bash auf dem remoterechner repräsentiert.
Wenn man auf dem Host eine Konsole öffnet und dann mit dem Parameter "&" ein Programm startet, beispielsweise Mozilla, ist dies genau das selbe wie per SSH auf dem Zielrechner. Aber schließ doch mal die lokale Konsole, in der du Mozilla gestartet hast, dann ist auch Mozilla weg. Genau das Problem hast du mit SSH-Login ...
Ich weiss allerdings nicht genau wie man das umgehen kann, oder ob man das umgehen kann. Ich schätze eher nicht, da es ja auch Sicherheitsrisiko ist, wenn jeder angemeldete User einfach Programme starten kann und diese nicht beendet werden.
Wenn man auf dem Host eine Konsole öffnet und dann mit dem Parameter "&" ein Programm startet, beispielsweise Mozilla, ist dies genau das selbe wie per SSH auf dem Zielrechner.
ne... eine ssh verbindung auf dem zielrechner ist das selbe wie eine konsole auf dem zielrechner...
ein ssh kommando mit & ist das gleiche wie ein konsolenkomando mit &
Zitat:
Aber schließ doch mal die lokale Konsole, in der du Mozilla gestartet hast, dann ist auch Mozilla weg. Genau das Problem hast du mit SSH-Login ...
ja natürlich!!!! das weiss ich doch!!!!!! genau das ist der sinn dieses threads!!!!!!!!!!!!!!!!!1 whaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
Zitat:
Ich weiss allerdings nicht genau wie man das umgehen kann, oder ob man das umgehen kann. Ich schätze eher nicht, da es ja auch Sicherheitsrisiko ist, wenn jeder angemeldete User einfach Programme starten kann und diese nicht beendet werden.
das muss gehen... die deamons schaffen das ja auch irgendwie und keiner der nen spieleserver administriert hat ständig irgendwelche aktiven ssh´s laufen!
was hätte denn das für einen sinn einen remoteserver zu haben, wenn der von deinem localen rechner abhängig wäre???? genau garkeinen!
die daemons wedern ja eigentlic hauch als anderer benutzer und nciht von deiner shell aus gestartet, mir fällt als lösung höchstens ein dass du die dämonisierst
nö ich hab hier nen teamspeakserver... der startet als deamon... und den starte ich als normaler user von meiner shell aus... muss ich mcih nicht mal als root einloggen....
Etwas Besseres als das Daemoniseren des Prozesses kann ich auch nicht anbieten. Dieses ist leider nicht einheitlich bei den verschiedenen Distributionen, bei Debian geht das mit start-stop-daemon, bei Red Hat glaube ich mit initlog.
Alternativ könnte man auch stdout und stderr des Programms ins Null-Device umleiten ([Programmaufruf] >/dev/nul 2>&1 & - sobald der Elternprozess (in Deinem Fall die Shell) des Programms beendet wird, müsste das System das Programm dem init-Prozess als Kindsprozess unterschieben.
Also, das was sys3 geschrieben hat, tut. Wenn Du wert legst auf den Output des Programms vielleicht nicht nach /dev/null umleiten, sondern in ne Datei.
Da gibts aber auch noch nen Befehl, der nennt sich nohup (=NO HangUP) und laesst sich auch einfacher merken als die >'s und &'s und 1er und 2er..... also:
Code:
user@rechnername:~$ nohup befehl &
Am besten isses, Du leitest auch hier die Ausgabe gleich noch mit um:
Code:
user@rechnername:~$ nohup befehl > datei.out &
sonst erstellt er jesdesmal eine Datei nohup.out, die einfach ueberschrieben wird, wenn Du das Programm oder ein anderes im selben Verzeichnis startest (nur, falls Du wert auf den output legst.)
Danach kanst Du Dich gefahrlos ausloggen und das Proggie laeuft weiter.
Ach ja, vielleicht noch die PID merken, falls du das Programm irgendwann (wahrscheinlich mit kill) beenden willst. Oder dann mit ps die PID rausfinden.
Das mit dem nohup laeuft wahrscheinlich intern so ab, wies sys3 beschrieben hat, kann ich mir vorstellen.
teamspeak issn programm, womit man sich quasi über internet unterhalten kann.
man hat ein clientprogramm und einen server. alle connecten sich zu dem server und können dann per microphon miteinander reden.
muss das & da jetzt eigenltich hin, denn wenn ich eh nix mehr in der shell machen will müsste ich das doch weglassen können, oder?
teamspeak issn programm, womit man sich quasi über internet unterhalten kann.
man hat ein clientprogramm und einen server. alle connecten sich zu dem server und können dann per microphon miteinander reden.
muss das & da jetzt eigenltich hin, denn wenn ich eh nix mehr in der shell machen will müsste ich das doch weglassen können, oder?
wie willst Du Dich dann sauber ausloggen? ich meine, ohne exit?
Habs grad mal probiert, wenn Du einfach das Terminalfenster schliesst, funktionierts auch... da wuerd ich mich aber nicht drauf verlassen.....
Gruesse, kerri
PS.: net mal genug Zeit zum sauber ausformuliern lassen sie einem....*tztztztztz*