🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

11 total messages Started by Alexander Lucke Sat, 25 May 1996 00:00
Programm (Script) laufen lassen, auch nach Logout
#12
Author: Alexander Lucke
Date: Sat, 25 May 1996 00:00
24 lines
1771 bytes
Hi!

Ich hab da nen Unix-System, auf dem ich gern staendig nen Script
laufen lassen will. Wie kann ich das tun. Wenn ich mich einlogge, das
Script starte und mich dann wieder auslogge, wird automatisch das
Script beendet. 

Kann man das irgendwie umgehen ?

Reply bitte per email! Thnx!

bye...
Alexander

                                    |||
                                  ( o o )
 -----------------------------OOO--` - '---OOO-
|  Alexander Lucke,                            |
|  Email: <al@next2.psychologie.hu-berlin.de>  |
|  WWW: <http://141.20.111.4/al/>              |
|                                              |
|     pgp key available by request or www      |
 ----------------------------------------------
Re: Programm (Script) laufen lassen, auch nach Logout
#13
Author: Knut Hofmann
Date: Sat, 25 May 1996 00:00
27 lines
1885 bytes
Alexander Lucke wrote:
> 
> Hi!
> 
> Ich hab da nen Unix-System, auf dem ich gern staendig nen Script
> laufen lassen will. Wie kann ich das tun. Wenn ich mich einlogge, das
> Script starte und mich dann wieder auslogge, wird automatisch das
> Script beendet.
> 
> Kann man das irgendwie umgehen ?
> 
> Reply bitte per email! Thnx!
> 
> bye...
> Alexander
Hi Alex,

einfach:

"nohup DeinSript" eingeben. Das laueft dann solang bis Dein Script ordentlich terminiert oder das System 
runtergefahren wird >>>> also sei vorsichtig damit !!!
-- 
Knut Hofmann, Berlin, GERMANY			

email :   hofmann@is.in-berlin.de
www   :   http://w3.rz.fhtw-berlin.de/~s004060x/
Re: Programm (Script) laufen lassen, auch nach Logout
#5
Author: Seltmann
Date: Sun, 26 May 1996 00:00
22 lines
1730 bytes
Alexander Lucke wrote:
> 
> Hi!
> 
> Ich hab da nen Unix-System, auf dem ich gern staendig nen Script
> laufen lassen will. Wie kann ich das tun. Wenn ich mich einlogge, das
> Script starte und mich dann wieder auslogge, wird automatisch das
> Script beendet.
> 
> Kann man das irgendwie umgehen ?
> 

Mach doch mal  <  man at  > das koennte Dir vielleicht weiterhelfen.

Gruss Andreas

-- 

| mailto:seltmann@student.uni-kl.de |  ** Be the Blue Ribbon with you **
| Phone  : +49 0631 98117           |
| e-plus : +49 177 249 02 03        |
Re: Programm (Script) laufen lassen, auch nach Logout
#6
Author: Andreas Joppich
Date: Sun, 26 May 1996 00:00
35 lines
2824 bytes
Alexander Lucke (al@next2.psychologie.hu-berlin.de) wrote:
:> 
:> Ich hab da nen Unix-System, auf dem ich gern staendig nen Script
:> laufen lassen will. Wie kann ich das tun. Wenn ich mich einlogge, das
:> Script starte und mich dann wieder auslogge, wird automatisch das
:> Script beendet. 
:> 
Wie waere es mit 'script &' oder mit 'nohup script' ?

Wenn Du das Skript mit & am Ende startest und Dich dann ausloggst,
dann laeuft es ohne controlling tty weiter, d.h Du siehst keinen
tty-Eintrag, wenn Du ein ps -ax absetzt.

Und wenn Du es mit nohup startest, dann werden alle Ausgaben des Skripts
in die Datei nohup.out umgeleitet.

Das & am Ende tut es nur dann, wenn Deine Shell Posix-Job-Control beherrscht.
Das kann z.B. die bash oder auch eine csh sein. Kannst Du mal checken,
indem Du dein Skript einfach mit 'script' startest und danach Control-Z
drueckst. Wenn Dein Shell Job-Control kann, dann wird das Script angehalten
und in den Hintergrund geschickt. Mit 'bg' kannst Du es im Hintergrund 
weiterlaufen lassen und mit 'fg' wieder in den Vordergrund holen.

Du solltest nur darauf achten, dass Dein Script keine Terminal-Eingaben 
erwartet. Dann wird es schwierig.

Bis dann
Andreas
-- 
------------------------------------------------------------------------------
     PGP public key: http://www.westfalen.de/private/alderan/index.html
     PGP fingerprint: D5 B6 82 CB 66 8A 07 A8  08 95 C2 B0 ED 69 30 1E
------------------------------------------------------------------------------
I'm not speaking for anyone or anything else. Sometimes not even for myself...
Re: Programm (Script) laufen lassen, auch nach Logout
#7
Author: Michael Staats
Date: Tue, 28 May 1996 00:00
100 lines
4467 bytes
aj@alderan.westfalen.de (Andreas Joppich) writes:

>Alexander Lucke (al@next2.psychologie.hu-berlin.de) wrote:
>:> 
>:> Ich hab da nen Unix-System, auf dem ich gern staendig nen Script
>:> laufen lassen will. Wie kann ich das tun. Wenn ich mich einlogge, das
>:> Script starte und mich dann wieder auslogge, wird automatisch das
>:> Script beendet. 
>:> 
>Wie waere es mit 'script &' oder mit 'nohup script' ?

>Wenn Du das Skript mit & am Ende startest und Dich dann ausloggst,
>dann laeuft es ohne controlling tty weiter, d.h Du siehst keinen
>tty-Eintrag, wenn Du ein ps -ax absetzt.

>Und wenn Du es mit nohup startest, dann werden alle Ausgaben des Skripts
>in die Datei nohup.out umgeleitet.

>Das & am Ende tut es nur dann, wenn Deine Shell Posix-Job-Control beherrscht.

Hm, nein, eher nicht.

1. "script &" klappt nur bei shells, die sozusagen ein eingebautes
"nohup" haben, z. B. tcsh/csh, sonst wird der Prozess beim Ausloggen
mit HUP gekillt. (* siehe unten)

2. "nohup script &" klappt eigentlich immer, das nohup sorgt daf�r,
da� das HUP Signal beim Ausloggen ignoriert wird. (** siehe unten)

3. job control ist nur n�tig, wenn man das script im Vordergrund
(ohne &) starten will und es dann sp�ter in den Hintergrund schicken
will. Das normale & f�r Hintergrund d�rfte schon seit Generationen in
/bin/sh drin sein, da hat man von job control noch getr�umt.

(*) Ich kenne mich mit tcsh/csh nicht aus und wei� nicht genau, wie
das "eingebaute" nohup funktioniert, entweder setzt die shell 
vorm exec() die signal mask, oder Hintergrundprozesse kommen gar nicht
in die gleiche Process-Group. 

(**) zum Thema HUP Signal: Das ist ziemlich verwirrend. Eigentlich
sollte der Terminal-Treiber das HUP beim logout schicken. Und zwar an
die ganze Process-Group der login shell. Damit bekommen z. B. bei ksh
auch die Kinder der Shell (Hintergrundprozesse) ein HUP, daher das
nohup. Wenn man aber die login shell mit "kill -9" killt, kann
anscheinend der Kernel (tty Treiber) nicht mehr rauskriegen, was denn
die Process-Group war, damit gibt's auch kein HUP an die Kinder (das
w�re dann also die unsaubere L�sung wenn man das nohup vergessens
hat).

Au�erdem gibt's nat�rlich noch viel mehr M�glichkeiten, seinem Job das
�berleben zu garantieren (hatte ich schonmal gepostet :-)

$ job &; kill -9 $$ # hatten wer schon

oder

$ (job &)&

oder vielleicht

$ echo `job &`|mail -s Bloedsinn `whoami`

Wie waers mit

su `whoami` -c "job &"

(hier musst Du noch Dein password eingeben.)

Dann waere da noch

$ export EDITOR="job&"; crontab -e&

Hm, oder einfach

$ echo "job"|at now

Falls Du root bist und ein SYS V artiges System hast, versuch doch

# echo 'jo:2:once:/complete/path/job'>>/etc/inittab;telinit 2

Oder wie waer's mit

$ rsh <hostname> 'job>/dev/null 2>&1 0>&1'<&-&

Falls Du perl hast, nimm doch

$ perl -e 'fork||exec "job"'

Unter AIX (in der Standardinstallation) koenntest Du auch 

$ lp -d bsh job

Tsch�� denn,
	Michael
--
Michael Staats, Theoretical Physics, Uni-GH Duisburg 
email: michael@thp.Uni-Duisburg.DE
<a href="http://WWW.thp.Uni-Duisburg.DE/">Click</a> me!
<a href="http://WWW.thp.Uni-Duisburg.DE/cuaix/cuaix.html">A c.u.aix archive</a>
Re: Programm (Script) laufen lassen, auch nach Logout
#8
Author: Hans Steffani
Date: Tue, 28 May 1996 00:00
25 lines
2112 bytes
michael@hal6000.thp.Uni-Duisburg.DE (Michael Staats) writes:

>(**) zum Thema HUP Signal: Das ist ziemlich verwirrend. Eigentlich
>sollte der Terminal-Treiber das HUP beim logout schicken. Und zwar an
>die ganze Process-Group der login shell. Damit bekommen z. B. bei ksh
>auch die Kinder der Shell (Hintergrundprozesse) ein HUP, daher das
>nohup. Wenn man aber die login shell mit "kill -9" killt, kann
>anscheinend der Kernel (tty Treiber) nicht mehr rauskriegen, was denn
>die Process-Group war, damit gibt's auch kein HUP an die Kinder (das
>w�re dann also die unsaubere L�sung wenn man das nohup vergessens
>hat).

Ich dachte, es sei so, dass bei kill -9 der entsprechend gekillte
Prozess keine Chance mehr hat irgendwas aufzuraeumen. Somit hat es
auch keine Moeglichkeit seine Kinder zu killen. Oder liege ich da 
falsch?

h.f.s.
[f'up,cc]
--
Hans Friedrich Steffani
Institut fuer Elektrische Maschinen und Antriebe
TU Chemnitz-Zwickau
e-mail: hans.steffani@e-technik.tu-chemnitz.de
Re: Programm (Script) laufen lassen, auch nach Logout
#9
Author: Michael Staats
Date: Tue, 28 May 1996 00:00
43 lines
3185 bytes
Hans Steffani (hfst@hrz.tu-chemnitz.de) wrote:
: michael@hal6000.thp.Uni-Duisburg.DE (Michael Staats) writes:
: 
: >(**) zum Thema HUP Signal: Das ist ziemlich verwirrend. Eigentlich
: >sollte der Terminal-Treiber das HUP beim logout schicken. Und zwar an
: >die ganze Process-Group der login shell. Damit bekommen z. B. bei ksh
: >auch die Kinder der Shell (Hintergrundprozesse) ein HUP, daher das
: >nohup. Wenn man aber die login shell mit "kill -9" killt, kann
: >anscheinend der Kernel (tty Treiber) nicht mehr rauskriegen, was denn
: >die Process-Group war, damit gibt's auch kein HUP an die Kinder (das
: >w�re dann also die unsaubere L�sung wenn man das nohup vergessens
: >hat).
: 
: Ich dachte, es sei so, dass bei kill -9 der entsprechend gekillte
: Prozess keine Chance mehr hat irgendwas aufzuraeumen. Somit hat es
: auch keine Moeglichkeit seine Kinder zu killen. Oder liege ich da 
: falsch?

Das ist die alternative Erk�rung :-)
Die hielt ich fr�her auch f�r richtig, das w�rde aber bedeuten, da�
die shell beim exit noch ein HUP an ihre eigene Prozessgroup
schickt. Auch m�glich. Nur denke ich jetzt, da� es eigentlich Aufgabe
des Terminal-Treibers ist, ein HUP zu verschicken, und nicht Aufgeb
der shell. 
Hm, vielleicht h�ngt das auch mit dem Teminal zusammen, wenn man �ber
ein tty eingeloggt ist, schickt der Terminal-Treiber ein HUP, sonst
nicht, daf�r aber die shell.

Hm, genaugenommen wei� ich es nicht, und es hat keinen Sinn, in
de.comp.os.unix halbwahre Sachen zu vermuten, es gibt immer jemanden,
der es genau wei� :-)

Also: Wer schickt wann ein HUP beim ausloggen?

Tsch��,
	Michael

-- 
Michael Staats, Theoretical Physics, Uni-GH Duisburg 
email: michael@thp.Uni-Duisburg.DE
<a href="http://WWW.thp.Uni-Duisburg.DE/">Click</a> me!
<a href="http://WWW.thp.Uni-Duisburg.DE/cuaix/cuaix.html">A c.u.aix archive</a>
Re: Programm (Script) laufen lassen, auch nach Logout
#10
Author: J Wunsch
Date: Tue, 28 May 1996 00:00
23 lines
2027 bytes
Ich schrieb:

> $ ps -j
>    PID  PGID   SID TTY      TIME COMD
>   6832  6832  4353 pts000   0:01 ksh
>   6942  6942  4353 pts000   0:00 ps
>   6940  6940  4353 pts000   0:00 ksh
>   6941  6940  4353 pts000   0:00 sleep
> 
> Es ist deutlich zu sehen, da� die Vordergrundproze�gruppe die 6832
> ist, w�hrend die while-Schleife die 6940 belegt.

Nat�rlich ist die 6832 die Proze�gruppe der Shell und die 6942 die
Vordergrundproze�gruppe (n�mlich die des ps selbst).  Allerdings tut
das nicht viel zur Sache -- es bleibt dabei, da� die ksh wie alle
anderen job-control-f�higen Shells mehrere Proze�gruppen aufbaut.

-- 
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: Programm (Script) laufen lassen, auch nach Logout
#11
Author: J Wunsch
Date: Tue, 28 May 1996 00:00
66 lines
3884 bytes
michael@hal6000.thp.Uni-Duisburg.DE (Michael Staats) schrieb:

> >Das & am Ende tut es nur dann, wenn Deine Shell Posix-Job-Control
beherrscht.

> Hm, nein, eher nicht.

Eher doch. :)

> 1. "script &" klappt nur bei shells, die sozusagen ein eingebautes
> "nohup" haben, z. B. tcsh/csh, sonst wird der Prozess beim Ausloggen
> mit HUP gekillt. (* siehe unten)

Eben bei Job-Control shells.  Kann sein, da� die Korn-Shell
�bereifrigerweise ein SIGHUP, das sie bekommt, auch gleich noch an
alle ihre Kind-Proze�gruppen weiterreicht -- so genau kenne ich mich
mit der ksh nicht lang.  Auf jeden Fall _verwaltet_ sie aber auch
getrennte Proze�gruppen:

$ uname -a                             
UNIX_SV snaily 4.2 1.1 i386 386/AT
$ what /bin/ksh
/bin/ksh:
        Version 11/16/88g
$ (while true; do sleep 10; done) &
[1]     6940
$ ps -j
   PID  PGID   SID TTY      TIME COMD
  6832  6832  4353 pts000   0:01 ksh
  6942  6942  4353 pts000   0:00 ps
  6940  6940  4353 pts000   0:00 ksh
  6941  6940  4353 pts000   0:00 sleep

Es ist deutlich zu sehen, da� die Vordergrundproze�gruppe die 6832
ist, w�hrend die while-Schleife die 6940 belegt.

> (*) Ich kenne mich mit tcsh/csh nicht aus und wei� nicht genau, wie
> das "eingebaute" nohup funktioniert, entweder setzt die shell 
> vorm exec() die signal mask, oder Hintergrundprozesse kommen gar nicht
> in die gleiche Process-Group.

Sie kommen genau wie bei obiger Korn-Shell nicht in die gleiche
Proze�gruppe und ... 

> (**) zum Thema HUP Signal: Das ist ziemlich verwirrend. Eigentlich
> sollte der Terminal-Treiber das HUP beim logout schicken.

...macht er auch, aber nur an die Vordergrundproze�gruppe.  Sollte
nat�rlich die dort laufende Shell so doof sein und dann noch alle ihre
Kinder mit in den Tod rei�en (,,Wenn ich schon sterben mu�, dann
braucht ihr ja nicht weiterleben!''), dann ist das ihr (oder Dein :)
Problem.  C-alike Shells machen das nicht (und sind daher effektiv
,,nohuped'' f�r ihre Hintergrundjobs, egal, wie sie in den Hinter-
grund gelangt sind), und meines Wissens machen das zumindest die bash,
die pdksh, und 4.4BSD's job-control-f�hige /bin/sh nicht.

Wenn Du eine Shell mit -KILL abschie�t, bist Du nat�rlich f�r die
Folgen verantwortlich.  Wenn schon, dann schie� die ganze Proze�gruppe
ab (negative PID verwenden).  Normalerweise schickt man ein -HUP an
die Proze�gruppe (was auch bei background jobs der csh geht, weil sie
eben nur ``effectively nohuped'' sind).

-- 
J"org Wunsch					       Unix support engineer
joerg_wunsch@interface-business.de       http://www.interface-business.de/~j
Re: Programm (Script) laufen lassen, auch nach Logout
#3
Author: Michael Staats
Date: Wed, 29 May 1996 00:00
69 lines
3984 bytes
j@ida.interface-business.de (J Wunsch) writes:

>michael@hal6000.thp.Uni-Duisburg.DE (Michael Staats) schrieb:

>> >Das & am Ende tut es nur dann, wenn Deine Shell Posix-Job-Control
>beherrscht.

>> Hm, nein, eher nicht.

>Eher doch. :)

Hm, also entweder reden wir aneinander vorbei oder nicht :-)
Also: Nat�rlich tut ein & das was es schon immer getan hat: Den
Prozess in den Hintergrund schicken. Das meinte ich.

>> 1. "script &" klappt nur bei shells, die sozusagen ein eingebautes
>> "nohup" haben, z. B. tcsh/csh, sonst wird der Prozess beim Ausloggen
>> mit HUP gekillt. (* siehe unten)

>Eben bei Job-Control shells.  Kann sein, da� die Korn-Shell
>�bereifrigerweise ein SIGHUP, das sie bekommt, auch gleich noch an
>alle ihre Kind-Proze�gruppen weiterreicht -- so genau kenne ich mich
>mit der ksh nicht lang.  Auf jeden Fall _verwaltet_ sie aber auch
>getrennte Proze�gruppen:

[ ... ]
Ok, das stimmt.

>Sie kommen genau wie bei obiger Korn-Shell nicht in die gleiche
>Proze�gruppe und ... 

>> (**) zum Thema HUP Signal: Das ist ziemlich verwirrend. Eigentlich
>> sollte der Terminal-Treiber das HUP beim logout schicken.

>...macht er auch, aber nur an die Vordergrundproze�gruppe.  Sollte
>nat�rlich die dort laufende Shell so doof sein und dann noch alle ihre
>Kinder mit in den Tod rei�en (,,Wenn ich schon sterben mu�, dann
>braucht ihr ja nicht weiterleben!''), dann ist das ihr (oder Dein :)
>Problem.

Tja, was sagt denn z. B. Posix zu dem Thema? Mu� das so oder nicht?

>C-alike Shells machen das nicht (und sind daher effektiv
>,,nohuped'' f�r ihre Hintergrundjobs, egal, wie sie in den Hinter-
>grund gelangt sind), und meines Wissens machen das zumindest die bash,
>die pdksh, und 4.4BSD's job-control-f�hige /bin/sh nicht.

Ha, mit der pdksh hast Du mich jetzt aber �berrascht. Tats�chlich sind
auch dort Hintergrundprozesse effektiv ge-nohuped, hab's grad
ausprobiert. 

>Wenn Du eine Shell mit -KILL abschie�t, bist Du nat�rlich f�r die
>Folgen verantwortlich. Wenn schon, dann schie� die ganze Proze�gruppe
>ab (negative PID verwenden).

Nein. Genau das will ich ja nicht. Der kill -KILL Trick ist die quick
and dirty Methode, bei der ksh z. B. ein laufendes ftp im Vordergrund
zu starten, in den Hintergrund zu schicken und ein logout ohne
Beendigung des ftp Prozesses zu machen. Wie ich �berfl�ssige Prozesse
loswerde, ist das genaue Gegenteil.

Tsch��,
	Michael
--
Michael Staats, Theoretical Physics, Uni-GH Duisburg 
email: michael@thp.Uni-Duisburg.DE
<a href="http://WWW.thp.Uni-Duisburg.DE/">Click</a> me!
<a href="http://WWW.thp.Uni-Duisburg.DE/cuaix/cuaix.html">A c.u.aix archive</a>
Re: Programm (Script) laufen lassen, auch nach Logout
#2
Author: J Wunsch
Date: Sun, 02 Jun 1996 00:00
24 lines
2189 bytes
michael@hal6000.thp.Uni-Duisburg.DE (Michael Staats) schrieb:

> >...macht er auch, aber nur an die Vordergrundproze�gruppe.  Sollte
> >nat�rlich die dort laufende Shell so doof sein und dann noch alle ihre
> >Kinder mit in den Tod rei�en (,,Wenn ich schon sterben mu�, dann
> >braucht ihr ja nicht weiterleben!''), dann ist das ihr (oder Dein :)
> >Problem.
> 
> Tja, was sagt denn z. B. Posix zu dem Thema? Mu� das so oder nicht?

Sollte in Posix.1 stehen, das habe ich aber leider nicht.

Ich vermute, da� das dort eher schwammig formuliert ist, da� es also
so sein darf (schlie�lich hat man in Posix alles unterlassen, um die
ksh irgendwie zu kompromittieren, und deren teilweise dubioses
Verhalten dann oft als ``implementation-defined'' deklariert), aber
nicht sein mu�.

-- 
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. ;-)
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