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

[solved] programme daemonizen?

wie geht das ist das so das ich einfach nen & (oder war das doch das $ ) hinter den startbefehl setze und dann laeuft das programm als daemon im hintergrund oder ist das nur bei programmen die das unterstuetzen?
 

Teasy

Member
Hallo,
Daemonen sind Hintergrundprozesse, die beim booten gestartet werden und dann
Services zur Verfügung stellen, wie z.B. Samba, DHCP, ... Diese Services werden
normalerweise über die Startscripte gestartet und somit mit root-Rechten.
Wenn du an dem Befehl ein & anhängst, läuft das Programm zwar im
Hintergrund aber in deiner Session. Das Heisst, wenn du dich abmeldest wird
auch dein Programm beendet.

Gruß
Teasy
 
OP
captain nemo

captain nemo

Member
ok also ich muss dan einfach nen start script fuer das programm in diese eine datei ( muss nochmal nachlesen welche) eintragen und dann geht das.

ok danke fuer die aufklaerung
 
A

Anonymous

Gast
Also

Programme werden im Hintergrund folgendermaßen gestartet

programm &

Es wird dann eine Nummer in Eckigen Klammern angezeigt, mit der kannst du das Programm später wieder in den Vordergrund bringen mit

fg nummer

die Ausgabe auf dem Bildschirm geschieht dann aber immernoch auf dem Bildschirm um dies zu unterbinden, kann man die Ausgabe Umleiten in eine Datei

programm >bla &

Startet programm im Hintergrund und leitet die Ausgaben in die datei bla im aktuellen verzeichnis um.

ist dir die Ausgabe egal, so kannst du auch die Ausgabe nach /dev/null umleiten, dann wird die quasi gelöscht.

mit > wird die Standardausgabe umgeleitet, Fehlermeldungen werden weiterhin auf den Bildschirm ausgegeben, willst du, dass beide umgeleitet werden geschieht dies mit &>, falls nur die Fehlerausgabe umgeleitet werden soll 2>.

Meistens leite ich immer nur die Fehlerausgabe in eine Datei, die Standardausgabe nach /dev/null.

Du solltest dich auch mal mit pipes Beschäftigen. Eine Pipe leitet die Ausgabe eines Programmes an die Eingabe eines anderen Programmes. Ein einfaches Beispiel ist:

ls | less

für weitere infos: http://www.linuxfibel.de/eaumleitung.htm
 
OP
captain nemo

captain nemo

Member
hey danke
das sind ja gleich nen haufen neue sachen die ich ausprobierne kann.
mein anliegen war oder vielmehr ist den mldonkey im hintergrund laufen zu lassen so das ich die konsole dann wieder frei hab.

na ja muss halt nen bissel rumprobieren aber trotzdem nochmal nen grosses danke.
 
A

Anonymous

Gast
Ne andere Möglichkeit wäre über

at

at erlaubt es Programme zu bestimmten Zeiten auszuführen, aber man kann damit auch Programme gleich starten.

Ich hatte damals für mldonkey 2 scriptie geschrieben, eins zum Starten und eins zum beenden.

dann mit at so aufgerufen:

at -f mldonkeystarten now

startet mldonkey gleich, beim beenden halt umgedreht... Gestartet hab ich ihn meist mit now und beendet mit ner bestimmten Zeit, da ich den morgends immer abschalten wollte.

Wenn du mldonkey nur zu bestimmten Zeiten starten und beenden willst, aber dies jeden Tag der Fall ist, bieten sich auch cron jobs an.
 

poiin2000

Member
Im Hintergrund starten und von der Muttershell trennen wäre laut meiner Meinung die Praktischte Lösung.

Danach könntest du auch die shell beenden und dein donkey läuft weiterhin.

shellscript erstellen

mldonkey.sh
Code:
#!/bin/sh
./mldonkey &

mldonkey.sh ausführrechte schenken
Code:
chmod a+x mldonkey.sh

und mit

Code:
./mldonkey.sh
ausführen.

p2k
 
OP
captain nemo

captain nemo

Member
ich habs schon mit dem & hinter dem befehl geschafft aber mit der umleitung der textausgabe noch nicht. jetzt kann ich den client mit
Code:
./mlnet &
starten und dann mich in der shell auch abmelden oder andere sachen machen.

bei der umleitung mit
Code:
./mlent & &>blabla
macht der mir zumindest in verbindung mit mlnet nur ne leere datei.

die sache mit den pipes ist ne echt geniale sache macht das durchsuchen von texten viel einfacher zb
Code:
less configure.log|grep X11
oder
Code:
ps aux|grep mlnet

linux macht einfach nur spass!!!!
 
A

Anonymous

Gast
macht der mir zumindest in verbindung mit mlnet nur ne leere datei.

Es muss

Code:
./mlent  &>blabla &

heissen.

Zuerst in die Datei umleiten, dann in den Hintergrund stellen.

Bei Pipes ist man auch nicht auf Texte beschränkt. Die meisten Konsolenprogramme, auch wenn sie binäre Dateien zurückliefern (bsp crparanoia) können die Ausgabe an die Standardausgabe umleiten, also auf dem Bildschirm. Gut das macht ohne Pipes sicher keinen Sinn, wenn man seine Wave Datei nun auf dem Bildschirm mit lauter kryptischen symbolen dargestellt bekommt und sie dann auch nicht abgespeichert wird, aber so ist es möglich mittels pipes die Datei schnell weiter zu verarbeiten.

Die ganzen CD-rip GUIs arbeiten im Hintergrund mit pipes. Unter Linux findest du kaum ein Programm, welches sehr viele einzelne funktionen in einem integriert (GUIs ausgenommen, aber die verwenden ja andere Programme dafür...). Es gibt sehr viel kleine Programme, die man dann mit pipes beliebig kombinieren kann.

Ein weiteres Beispiel kannst du hier finden:

ftp://ftp.fh-hof.de/dozenten/smueller/WS03_04/Betriebssysteme/MP3-Workshop/playlisten_m3u_erstellen.htm

Ist eine Kombination aus Pipes und Umleitung der Ausgabe in eine Datei :)

mfg

Andy
 
Oben