Thread View: de.comp.os.linux
10 messages
10 total messages
Started by Thomas Holubar
Sun, 31 Dec 1995 08:55
Prozesse im Hintergrund weiterlaufen lassen ??
Author: Thomas Holubar
Date: Sun, 31 Dec 1995 08:55
Date: Sun, 31 Dec 1995 08:55
12 lines
1012 bytes
1012 bytes
Hallo ! Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ? Meine bisherige Idee war, per fork() einen Sohnprozess zu starten, der dann SIGTERM,SIGINT + SIGHUP ignoriert bzw. abfängt, aber das funktioniert leider nicht - jedenfalls nicht wie gewünscht. Einen guten Jahresanfang !! Thomas
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Thomas Kroener
Date: Sun, 31 Dec 1995 10:44
Date: Sun, 31 Dec 1995 10:44
17 lines
978 bytes
978 bytes
In article <4c5j69$6nk@zeus.rbi.informatik.uni-frankfurt.de>, Thomas Holubar writes:
> Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund
> weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ?
man nohup
____
|homas Kroener
[http://jswww.cs.uni-sb.de/~kroener]
--
| ...but I think that God's got a sick sense of humour and
| when I die I expect to find him laughing.
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Roland Schuch
Date: Sun, 31 Dec 1995 13:09
Date: Sun, 31 Dec 1995 13:09
17 lines
969 bytes
969 bytes
Thomas Holubar (holubar@informatik.uni-frankfurt.de) wrote:
: Hallo !
: Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund
: weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ?
nohup <Dein Kommando>
Gruss
Roland
--
--------------------------------------------------------------------
it's not too late to escape the "Gates" of Hell
Use Linux NOW!
windoze panic: brain dumped!
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: J Wunsch
Date: Sun, 31 Dec 1995 14:40
Date: Sun, 31 Dec 1995 14:40
34 lines
2257 bytes
2257 bytes
Thomas Holubar <holubar@informatik.uni-frankfurt.de> writes: > Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund > weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ? Das hat mit C nix zu tun, F'up gesetzt. > Meine bisherige Idee war, per fork() einen Sohnprozess zu starten, der dann > SIGTERM,SIGINT + SIGHUP ignoriert bzw. abfängt, aber das funktioniert leider > nicht - jedenfalls nicht wie gewünscht. Du kannst entweder ihn mit nohup starten und in den Hintergrund schicken, das ist der klassische Weg. Alle Systeme mit job control (also auch Linux) packen einen Hinter- grundprozeß automatisch in eine Prozeßgruppe, die kein SIGHUP bekommt. Folglich lebt er beim Ausloggen weiter, zumindest wenn die Shell job control macht (csh, bash, tcsh, ksh machen das). Willst Du das aus einem Programm heraus erledigen, also einen echten ,Dämon' bauen, so bietet sich dafür setsid(2) an. Du forkst einen neuen Prozeß, ordnest diesen dann mittels setsid() einer neuen Session zu, und beendest den Vordergrundprozeß. Da sich solch Code schwer debuggen läßt, vergiß nicht, eine -d Option vorzusehen, mit der Du das fork/setsid abklemmen kannst. Der Kindprozeß sollte übrigens alle nicht benötigten Deskriptoren schließen. Da er kein ctty hat, muß er seine Ausgaben über syslog(3) loggen. Direkte Ausgaben sind nur in der nicht-fork-Variante mit -d sinnvoll. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Matthias Prinz
Date: Sun, 31 Dec 1995 16:01
Date: Sun, 31 Dec 1995 16:01
11 lines
789 bytes
789 bytes
In article <4c5j69$6nk@zeus.rbi.informatik.uni-frankfurt.de>, Thomas Holubar <holubar@informatik.uni-frankfurt.de> wrote: >Hallo ! > >Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund >weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ? Mit 'nohup'. 'man nohup' erklärt, wie. -- System Administrator on Tintin Ruth@Tintin.Rhein-Main.De
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Joern Reder
Date: Mon, 01 Jan 1996 16:59
Date: Mon, 01 Jan 1996 16:59
28 lines
1117 bytes
1117 bytes
holubar@informatik.uni-frankfurt.de meinte am 31.12.95 zum Thema "Prozesse im Hintergrund weiterlaufen lassen ??": > Hallo ! > > Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund > weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ? Den Prozesz mit dem 'nohup' Kommando starten. Also: nohup Kommando Optionen & Naeheres dazu findest Du in den manpages zu nohup. > Einen guten Jahresanfang !! Ebenso... Tschau, Joern __ / Joern Reder / homepage : http://www.bg.bib.de/~a4h4re email : j.reder@darkness.gun.de ## CrossPoint v3.02 R ##
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Janko Hauser
Date: Mon, 01 Jan 1996 23:55
Date: Mon, 01 Jan 1996 23:55
28 lines
1521 bytes
1521 bytes
man nohup sollte Dir Klarheit verschaffen.
Bis denn,
Janko
Thomas Holubar (holubar@informatik.uni-frankfurt.de) wrote:
: Hallo !
: Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund
: weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ?
: Meine bisherige Idee war, per fork() einen Sohnprozess zu starten, der dann
: SIGTERM,SIGINT + SIGHUP ignoriert bzw. abfängt, aber das funktioniert leider
: nicht - jedenfalls nicht wie gewünscht.
: Einen guten Jahresanfang !!
: Thomas
--
========================================================================
Janko Hauser, | t-phone : 0431 83893 +
| e-mail : uhauser@jpoh.toppoint.de +
Wrangelstr. 32 | +
24105 Kiel | I'm working on it ... +
Germany | +
========================================================================
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Martin Imbeck
Date: Thu, 04 Jan 1996 20:04
Date: Thu, 04 Jan 1996 20:04
16 lines
1323 bytes
1323 bytes
Thomas Holubar (holubar@informatik.uni-frankfurt.de) wrote:
: Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund
: weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ?
: Meine bisherige Idee war, per fork() einen Sohnprozess zu starten, der dann
: SIGTERM,SIGINT + SIGHUP ignoriert bzw. abfängt, aber das funktioniert leider
: nicht - jedenfalls nicht wie gewünscht.
Die Methode einen solchen Prozess mit 'name -nohup' zu starten ist bekannt?
Vielleicht gibt eine solche Syntac ja auch fuer exec().
--
\ Martin Imbeck / phone +49-40-874436 /
\ mimbeck@xerxes.com / fax +49-40-8706591 /
\ / Hamburg / Germany /
\________________________ /____________________________/
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Joerg Koenig
Date: Fri, 05 Jan 1996 13:01
Date: Fri, 05 Jan 1996 13:01
35 lines
1795 bytes
1795 bytes
In article <4c5j69$6nk@zeus.rbi.informatik.uni-frankfurt.de>, Thomas Holubar <holubar@informatik.uni-frankfurt.de> says: > >Hallo ! > >Wie kann ich auf einem Unix-Sytem (z.B. Linux) einen Prozess im Hintergrund >weiterlaufen lassen auch wenn ich das kontrollierende Terminal beende ? > >Meine bisherige Idee war, per fork() einen Sohnprozess zu starten, der dann >SIGTERM,SIGINT + SIGHUP ignoriert bzw. abfängt, aber das funktioniert leider >nicht - jedenfalls nicht wie gewünscht. > >Einen guten Jahresanfang !! > >Thomas > Auf nohup ist ja schon hingedeutet worden. Wenn man es allerdings nicht dem Benutzer ueberlassen will, dass er entscheidet, ob der Prozess beim abmelden beendet wird oder nicht (waere z.B. bei DB-Servern undenkbar), so kann man den Prozess auch sich selbst vom kontrollierenden Terminal entkoppeln lassen. Dies geschieht, indem man ihn sich selbst fork()'en laesst. Der Vater beendet sich und der Sohn erklaert sich als erstes zum Fuehrer einer neuen Prozessgruppe (mittels setsid(2) (set session id) oder setpgrp(2) (set prozess group) auf aelteren Systemen). Auf diese Weise startet sich das Programm quasi selbst als Daemon und wird auch nach dem Abmelden des Starters weiter laufen. Das ist die typische Vorgehensweise, um Daemonen und/oder Server zu implementieren. Tschuess Joerg
Re: Prozesse im Hintergrund weiterlaufen lassen ??
Author: Bernhard Vogeler
Date: Tue, 16 Jan 1996 22:44
Date: Tue, 16 Jan 1996 22:44
11 lines
1095 bytes
1095 bytes
jko@adg.de (Joerg Koenig) wrote: >Dies geschieht, indem man ihn sich selbst >fork()'en laesst. Der Vater beendet sich und der Sohn erklaert sich >als erstes zum Fuehrer einer neuen Prozessgruppe (mittels setsid(2) >(set session id) oder setpgrp(2) (set prozess group) auf aelteren >Systemen). Wer's noch genauer wissen moechte, sollte mal bei R.Stevens "UNIX Neiwork Programming" nachschauen (gibts auch auf Deutsch). R.S. gibt ne regelrechte Checkliste mit abschreibfaehigem Beispiel fuer derartige demon-Prozesse.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads