Linux 14.983 Themen, 106.385 Beiträge

problem mit seti als dienst unter linux

Silent Bob / 19 Antworten / Flachansicht Nickles

hallo zusammen,
ich möchte auf meinem mandrake 9.2 server den seti client als dienst laufen lassen.

aber ich kann machen was ich will, immer wenn ich den starten will, kommt "permission denied".

ich habe folgendes gemacht:

1.: ich habe in /etc/init.d die datei \'seti\' erstellt.
die datei erhält den folgenden code:

#!/bin/bash
#seti starten
su setiuser -c /opt/setiathome/setiathome >&/dev/null&


2.: ich habe einen user für seti angelegt, der sinnvollerweise \'setiuser\' heisst.

3.: der seti client ist natürlich in /opt/setiathome installiert.

4.: ich habe dann noch den dienst mit ln -sf /etc/init.d/seti /etc/rc3.d ins runlevel 3 hinzugefügt, damit er direkt beim booten mitgestartet werden soll.

ja. soweit so gut. wenn ich jetzt als \'root\' oder als \'setiuser\' das ganze starten will (mit /etc/init.d/seti start) kommt \'permission denied\'.

warum? das verstehe ich nicht so ganz. dann ist mir auch aufgefallen, dass in dem ordner /etc/init.d/ alle einträge in meiner bash mit grüner schrift geschrieben sind und ein sternchen hinter dem namen haben. bis auf seti.
was bedeutet das? und wer kann mir sagen was ich falsch gemacht oder vergehssen habe?

danke im voraus

bei Antwort benachrichtigen
@ihr beiden Silent Bob
@ihr beiden the_mic
@ihr beiden Silent Bob
@ihr beiden Klaus_T
fast geschafft!!! Silent Bob
fast geschafft!!! Klaus_T
fast geschafft!!! Silent Bob
hat keine zweck Silent Bob
hat keine zweck Klaus_T
the_mic Silent Bob „problem mit seti als dienst unter linux“
Optionen

hm, ich hab grad mal kurz nachgeschaut. mandrake ist da etwas eklig und verlangt zwingend, dass seine startskripte eine minimalsyntax erfüllen. ich weiss nicht, ob die case-verzweigung dazugehört, aber zumindest musst du das functions-skript importieren (mit dem .). ich hab mal ein altes startskript, das ich mal für mandrake gebastelt habe, an deine zwecke angepasst:

#!/bin/bash
. /etc/rc.d/init.d/functions
case "$1" in
start)
#seti starten
su setiuser -c /opt/setiathome/setiathome >&/dev/null 2>&1
;;
stop)
#allen seti-instanzen sigterm schicken
VAR=$(ps ax | grep seti | awk '{ print $1 }')
for i in $VAR; do
kill $i
done
;;
*)
gprintf "Usage: seti {start|stop}\n"
exit 1
esac
exit 0


wenn du das skript einem runlevel hinzufügst, darfst du nicht einfach einen symlink erstellen (ausser bei gentoo ;-) ). du musst ihm auch noch sagen, was das system dann damit anfangen soll. das machst du, indem du dem link als ersten buchstaben ein S oder K mitgibst (S für start, K für stop (kill)).
ausserdem musst du angeben, in welcher reihenfolge es gestartet werden soll. dazu kommt nach dem K/S eine zweistellige zahl zwischen 01 und 99 (je höher desto später).
also:
ln -sf /etc/init.d/seti /etc/rc3.d/S99seti
und allenfalls noch ein K01 in runlevel 0 und 6

cat /dev/brain > /dev/null
bei Antwort benachrichtigen