Autor Thema: Sol8: prozess im hintergrund starten  (Gelesen 2083 mal)

claus

  • Gast
Sol8: prozess im hintergrund starten
« am: 16. September 2004, 20:29:52 »
Hallo,

wir starten im Augenblick einen daemon per Hand mit einem Script, welches im Wesentlichen aus folgenden Zeilen besteht:

#!/bin/sh
"nohup sudo -b -u publish $BASEDIR/publishd.pl &".

Dieser daemon läuft auf zwei Machinen.

Dazu habe ich drei Fragen:

1. Auf Maschine 1 macht es keine Probleme, schreibt aber nohup.out nach /etc/init.d (das gilt für beide Maschinen).
Kann ich da einfach einen anderen Pfad angeben fuer den output?

2. Auf Maschine 2 blockiert dasselbe script (gestartet vom selben user) die shell, dh ich bekomme da keinen prompt mehr. Woran liegt das?

3. Was würde auf Maschine 2 nach einem init 6 passieren (ein link zu dem script von /etc/rc3.d/ ist vorhanden)?


(die man page zu nohup kapier ich nicht so ganz).
Einen angenehmen Tag wünsche ich,

Claus

sonnenblen.de - Das unabhängige Sun User Forum

Sol8: prozess im hintergrund starten
« am: 16. September 2004, 20:29:52 »

Offline Jonny

  • Global Moderator
  • Sobl Guru
  • *****
  • Beiträge: 1063
Re: Sol8: prozess im hintergrund starten
« Antwort #1 am: 17. September 2004, 03:03:26 »
Hi Claus,

hast du schon mal was in der Art probiert:

#!/sbin/sh

case "$1" in
'start')
       sudo -b -u publish /pfadangabe/publishd.pl >/zielpfad/logfilename 2>&1 &
       ;;

'stop')
       /usr/bin/pkill publish
       ;;
*)
       echo "Usage: $0 { start | stop }"
       exit 1
       ;;
esac
exit 0

Da wird ordentlich in ein File gelogt und man kann stoppen.
Überprüf die Stop Anweisung mal mit einem pgrep.
Den nohup brauchst du so wie ich die Manpage verstehe nur wenn du einen Langläufer
von einer interaktiven Shell startest und diese dann beenden willst, bevor der
Prozess fertig ist.
Das Problem könnte man aber auch mit einem "batch < startscript" lösen.

Gruß
Hans-Peter
solaris is like a wigwam :
no windows, no gates and a apache inside !

claus

  • Gast
Re: Sol8: prozess im hintergrund starten
« Antwort #2 am: 17. September 2004, 14:28:54 »

Zitat

#!/sbin/sh

case "$1" in
'start')
       sudo -b -u publish /pfadangabe/publishd.pl >/zielpfad/logfilename 2>&1 &
       ;;

'stop')
       /usr/bin/pkill publish
       ;;
*)
       echo "Usage: $0 { start | stop }"
       exit 1
       ;;
esac
exit 0


Hi Hans-Peter,

ja, das Skript sah schon ungefaehr so aus, mit dem unterschied, dass ich die outputs nicht in ein file gepiped habe.

jetzt funktionierts auf beiden maschinen, was zwar das problem loest, aber nicht die frage, was vom environment auf den maschinen unterschiedlich gewesen sein koennte :)

aber trotzdem schon mal danke :)

Claus

cutoff

  • Gast
Re: Sol8: prozess im hintergrund starten
« Antwort #3 am: 26. November 2004, 13:59:03 »
in der AIX 5.2 manpage zu nohup ist es vllt. besser beschrieben:
Zitat

Whether or not the nohup command output is redirected to a terminal, the output
is appended to the nohup.out file in the current directory. If the nohup.out
file is not writable in the current directory, the output is redirected to the
$HOME/nohup.out file. If neither file can be created nor opened for appending,
the command specified by the Command parameter is not invoked. If the standard
error is a terminal, all output written by the named command to its standard
error is redirected to the same file descriptor as the standard output.


der nohup wird immer im aktuellen verzeichnis ausgefuehrt lt manpage. vllt. wurden die scripte aus verschiedenen verzeichnissen heraus gestartet? dann geht es bei fehlenden schreibrechten ins homeverzeichnis des users. hatten beide user ein $HOME?
ansonsten haette ich auch keine idee, warum das gescheitert ist.

SmellyCat

  • Gast
Re: Sol8: prozess im hintergrund starten
« Antwort #4 am: 26. November 2004, 15:15:29 »
ist der User der 2. Kist in der sudo Rechteliste drinnen?