Schrift
[thread]12329[/thread]

Perl als Deamon

Leser: 1


<< >> 2 Einträge, 1 Seite
willspass
 2008-08-10 01:30
#113278 #113278
User since
2008-08-10
1 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe ein kleines Perl Programm, welches beim Start des Systems (Solaris 10) automaitsch starten soll.

Das programm soll nicht mit root - Rechten, sonern als so etwas wie NOBODY beim Apache gestartet werden.

Ich habe mal die Suche und auch Google betätigt, aber irgendwie finde ich nicht die richtigen Schlüssel.

Zum Switchen des Users habe ich 'sudo' gefunden, was aber eher anders rum geht... also ein nobody will eine Datei mit root Rechten starten. Das werde ich später benötigen, weil mein Script u.a. 'route...' und 'ln ...' absetzt.
Aber wie bekomme ich das Script in einen LowCost Account?

Zum Starten des Scriptes:
Ich habe in das Verzeichnis /etc/rc3.d eine Datei 'S97myscript' gelegt, mit folgendem Inhalt.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/sh
case "$1" in
'start')
PATH=/var/opt/sun/jet/Utils/lib/SunOS/i86pc:/var/opt/sun/jet/Utils/lib/SunOS:/var/opt/sun/jet/Utils/lib
PATH=/opt/coolstack/bin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin:$PATH
export PATH
perl /apps/meinescripts/testscript.pl&

echo ""
;;
'stop')
echo "$0: Not stopping any services."
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac


Der Path ist der, den ich auch beim Erstellen der Datei hatte...

Das Programm läugt aber nach dem neustart nicht.

Wo kann ich nach eventuellen Fehlermeldungen suchen?


Hat mir da jemand einen Tip?
Vielen Dank.
Gast Gast
 2008-08-10 13:39
#113282 #113282
Initscripte starten immer als "root". Es gibt zwei möglichkeiten den nutzer zu wechseln.
1. Das Programm schränkt selber seine Rechte ein, indem es den Account ändert. (der X11-Server, Apache etc. machen das so)
2. Man nutzt su oder sudo um den Account zu ändern.

Man kann immer auf einen nieder previlegierten Account wechseln. (Also von root->nobody klappt immer)


In deinem Fall:
1.
Code (perl): (dl )
1
2
$> = $< =getpwnam "NOBODY";
$( = $) =getgrnam "NOBODY";


2.
su -c "perl /apps/meinescripts/testscript.pl" NOBODY &
<< >> 2 Einträge, 1 Seite



View all threads created 2008-08-10 01:30.