Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[solved] programme daemonizen?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
captain nemo
Member
Member
Beiträge: 94
Registriert: 30. Jan 2004, 04:46
Wohnort: Berlin
Kontaktdaten:

[solved] programme daemonizen?

Beitrag von captain nemo »

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?
rechtschreibfehler sind gewollt

"imagination is more important than knowledge"
A. Einstein

mein blog
Teasy
Member
Member
Beiträge: 65
Registriert: 28. Nov 2003, 18:31
Wohnort: Hannover
Kontaktdaten:

Beitrag von Teasy »

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
:mrgreen: Life is a Game - Scheiß Handlung aber geile Grafik !!! :mrgreen:
Benutzeravatar
captain nemo
Member
Member
Beiträge: 94
Registriert: 30. Jan 2004, 04:46
Wohnort: Berlin
Kontaktdaten:

Beitrag von captain nemo »

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
rechtschreibfehler sind gewollt

"imagination is more important than knowledge"
A. Einstein

mein blog
genius667

Beitrag von genius667 »

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
Benutzeravatar
captain nemo
Member
Member
Beiträge: 94
Registriert: 30. Jan 2004, 04:46
Wohnort: Berlin
Kontaktdaten:

Beitrag von captain nemo »

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.
rechtschreibfehler sind gewollt

"imagination is more important than knowledge"
A. Einstein

mein blog
genius667

Beitrag von genius667 »

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
Member
Beiträge: 55
Registriert: 29. Jan 2004, 17:04
Wohnort: Pforzheim
Kontaktdaten:

Beitrag von poiin2000 »

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: Alles auswählen

#!/bin/sh
./mldonkey &
mldonkey.sh ausführrechte schenken

Code: Alles auswählen

chmod a+x mldonkey.sh
und mit

Code: Alles auswählen

./mldonkey.sh
ausführen.

p2k
Benutzeravatar
captain nemo
Member
Member
Beiträge: 94
Registriert: 30. Jan 2004, 04:46
Wohnort: Berlin
Kontaktdaten:

Beitrag von captain nemo »

ich habs schon mit dem & hinter dem befehl geschafft aber mit der umleitung der textausgabe noch nicht. jetzt kann ich den client mit

Code: Alles auswählen

./mlnet &
starten und dann mich in der shell auch abmelden oder andere sachen machen.

bei der umleitung mit

Code: Alles auswählen

./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: Alles auswählen

less configure.log|grep X11
oder

Code: Alles auswählen

ps aux|grep mlnet
linux macht einfach nur spass!!!!
rechtschreibfehler sind gewollt

"imagination is more important than knowledge"
A. Einstein

mein blog
genius667

Beitrag von genius667 »

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

Code: Alles auswählen

./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/W ... tellen.htm

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

mfg

Andy
Antworten