🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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 ??
#11
Author: Thomas Holubar
Date: Sun, 31 Dec 1995 08:55
12 lines
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 ??
#12
Author: Thomas Kroener
Date: Sun, 31 Dec 1995 10:44
17 lines
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 ??
#37
Author: Roland Schuch
Date: Sun, 31 Dec 1995 13:09
17 lines
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 ??
#13
Author: J Wunsch
Date: Sun, 31 Dec 1995 14:40
34 lines
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 ??
#36
Author: Matthias Prinz
Date: Sun, 31 Dec 1995 16:01
11 lines
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 ??
#38
Author: Joern Reder
Date: Mon, 01 Jan 1996 16:59
28 lines
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 ??
#35
Author: Janko Hauser
Date: Mon, 01 Jan 1996 23:55
28 lines
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 ??
#39
Author: Martin Imbeck
Date: Thu, 04 Jan 1996 20:04
16 lines
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 ??
#40
Author: Joerg Koenig
Date: Fri, 05 Jan 1996 13:01
35 lines
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 ??
#41
Author: Bernhard Vogeler
Date: Tue, 16 Jan 1996 22:44
11 lines
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