Mailinglist Archive: opensuse-de (3855 mails)

< Previous Next >
Re: Startscript unter anderen Benutzer starten
  • From: David Haller <david@xxxxxxxxxx>
  • Date: Thu, 1 Jul 2004 05:27:32 +0200
  • Message-id: <20040701032732.GA6588@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Thu, 01 Jul 2004, Kay Häusler schrieb:
>Eine angenehme Nacht Dieter Kluenter, Hallo Liste,
>
>Am Mittwoch, 30. Juni 2004 schrieb Dieter Kluenter:
>
>>>>> wie kann ich ein Startscript unter einen anderen Benutzer starten?
>>>>> ich habe hier bei mir den Teamspeak Server eingerichtet, und in der
>>>>> Anleitung steht, dass man den Server unter einen anderen Benutzer
>>>>> starten soll
>
>>> zur Zeit starte ich den Servr per Hand
>>> im Teamspeak Verzeichnis ist eine Datei
>>> teamspeak2-server_startscript
>>>
>>> starten muss man es so "./teamspeak2-server_startscript start"
>>> und beenden so "./teamspeak2-server_startscript stop"
>
>> man su(1) richte dein Augenmerk auf die Variable -c
>
>das hab ich gemacht, der Server startet auch
>hab es per Yast getestet, nur das Problem ist es steht ungefährt 10
>Minuten "Teamspeak2 start"
>
>was läuft da schief?
>
>hier ist das Startscript, hab hier schon viel rumgetestet, ich komm
>hier nicht wirklich weiter :-/
>
>Ich kann den Server per Yast starten, nur die Meldung steht da
>ziemlich lange, und den Server auch beenden, da geht es ohne Probleme
>
>===============================================================================
>#! /bin/bash
># Copyright (c) 2004 TeamSpeak team All rights reserved.
>#
># Author: pwk.linuxfan 2004
>#

Fuege hier einen Header a ala /etc/init.d/skeleton ein (mit
'Provides: tss' z.B.). Requires musst du selbst rausfinden.

Anschliessend fuegst du noch ein:

====
TSS="<PFAD>/server_linux"
TSS_PID="/var/run/tss.pid"

. /etc/rc.status
rc_reset
====

>case "$1" in
> start)
> if [ -e /home/tss/tsserver2.pid ]; then
> echo "tsserver2.pid already exists...server already started ?";
> echo "If you are sure the server is not running, delete tsserver2.pid"
> exit 1
> else

Ersetzen durch:

====
case "$1" in
start)
if test -e "$TSS_PID"; then
echo "..." # wie oben
rc_failed 1
rc_exit
else
====

> if [ "$UID" = "0" ]; then
[..]

Das inkl. der if-Zeile loeschen.

> echo "starting the teamspeak2 server"
> if [ -e /home/tss/server_linux ]; then
> if [ ! -x /home/tss/server_linux ]; then
> echo "server_linux is not executable, trying to set it"
> chmod u+x /home/tss/server_linux
> fi
> if [ -x /home/tss/server_linux ]; then
> su tss -c"/home/tss/server_linux -PID=tsserver2.pid"
> else
> echo "server_linux is not executable, fix this"
> exit 4
> fi

Und dies ersetzen durch:

echo "starting the teamspeak2 server"
if test -e $TSS && test -x $TSS; then
startproc -f "$TSS_PID" -u tss $TSS -PID="$TSS_PID
### evtl. -f $TSS_PID oder eher
### -PID="$TSS_PID" weglassen
else
echo "server_linux is not executable, fix this"
rc_failed 4
rc_exit
fi


> fi
> ;;
> stop)
> if [ -e /home/tss/tsserver2.pid ]; then
> echo -n "stopping the teamspeak2 server"
> if ( kill -TERM `cat /home/tss/tsserver2.pid` ); then
> for c in $(seq 1 300); do
> if [ -e /home/tss/tsserver2.pid ]; then
> echo -n "."
> sleep 1
> fi
> done
> fi
> if [ -e /home/tss/tsserver2.pid ]; then
> echo "server does not shutdown cleanly - killing"
> kill -KILL `cat /home/tss/tsserver2.pid`
> rm /home/tss/tsserver2.pid
> sleep 5
> else
> echo "done"
> fi
> else
> echo "tsserver2.pid is missing, no started server ?"
> exit 7
> fi
> ;;

Ersetzen durch:

stop)
if test -e "$TSS_PID"; then
killproc -f "$TSS_PID" "$TSS"
fi

### Evtl. auch durch ein "warten und testen und killen" zu ergaenzen.

;;
> restart)
> $0 stop && $0 start || exit 1
> ;;

Siehe /etc/init.d/skeleton

> status)
> if [ -e /home/tss/tsserver2.pid ]; then
> echo "the server seems to be running"
> exit 0
> else
> echo "the server seems to be stopped"
> exit 3
> fi
> ;;

Ersetzen durch

status)
checkproc -f "$TSS_PID" "$TSS"
rc_status -v
;;


[zum Rest hab ich jetzt kein Bock mehr]

-dnh

--
283: whoami
Whoami ist nur was für Leute mit Alzheimer! (Begründung von
Microsoft Deutschland für das Entfernen des Befehls aus Windows
NT)

< Previous Next >
Follow Ups