Debian 3.1 Script Ausführung bei Systemstart (Autostart)

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
phpman
Posts: 66
Joined: 2003-11-02 23:06
 

Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by phpman »

Hallo zusammen,

ich möchte gerne eine Script unter Debian 3.1 automatisch beim Systemstart ausführen lassen, hierdurch soll ein Dienst mit gestartet werden.

Das Program selbst liegt in /usr/sbin/tool und kann mit /etc/init.d/tool start bzw. stop über das in /etc/init.d/ liegende tool script ausgeführt werden.

Wenn ich nun (wie normal üblich) einen symlink:

ln -s /etc/init.d/toolsvc /etc/rc3.d/S40toolsvc

erstelle wird dieser Dienst trotzallem nicht ausgeführt.

Was mach ich denn hier falsch? Ihr hattet das Thema mal im Forum daran hab ich mich auch gehalten nur gehts trotzdem nicht :(

Sxxtoolsvc (xx) ist der Runlevel

Denn wenn ich /usr/sbin/toolsvc direct starte werden keine Logs erstellt da dies über das script in /etc/init.d/toolsvc gemacht wird.

Anbei auszug aus dem Script:

Code: Select all


#!/bin/sh


#######


#Filename: toolsvc


#Location: /etc/init.d

#######

PATH=/sbin:/bin


TVCREPPID=/var/run/toolsvc.pid
TVCREPLOG=/var/log/toolsvc.log
TVCREPRUN=/usr/sbin/toolsvc-log
TVCREPSVC=/usr/sbin/toolsvcsvc


#if service file does not exist then exit the script


if test ! -x $TVCREPSVC ; then


    echo $TVCREPSVC file was not found.

    echo Exiting...


    exit 2


    fi

#Create the file to start the service if it does not exist


if test ! -x $TVCREPRUN ; then


    echo '#!/bin/sh' > $TVCREPRUN

    echo 'exec' $TVCREPSVC '2>>' $TVCREPLOG  >> $TVCREPRUN

    chmod +x $TVCREPRUN


    fi

case "$1" in

start)


  echo -n "Running TVCTool..."


  start-stop-daemon --start -b -m -p $TVCREPPID --exec $TVCREPRUN -- $TVCREPLOG

  echo "."

  ;;

stop)

  echo  "Stopping TVCTool..."

  start-stop-daemon --stop -p $TVCREPPID

  rm $TVCREPPID

  ;;

*)


  echo "Usage: $0 {start|stop}"


  exit 1

esac

exit 0

Hoffe Ihr könnt mir weiterhelfen.

Vielen Dank im voraus.

Gruß, PHPman
User avatar
Joe User
Project Manager
Project Manager
Posts: 11189
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by Joe User »

phpman wrote:Das Program selbst liegt in /usr/sbin/tool und kann mit /etc/init.d/tool start bzw. stop über das in /etc/init.d/ liegende tool script ausgeführt werden.

Wenn ich nun (wie normal üblich) einen symlink:

ln -s /etc/init.d/toolsvc /etc/rc3.d/S40toolsvc
/etc/init.d/tool != /etc/init.d/toolsvc
phpman
Posts: 66
Joined: 2003-11-02 23:06
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by phpman »

Hallo,
Joe User wrote:
phpman wrote:Das Program selbst liegt
in /usr/sbin/tool und kann mit /etc/init.d/tool start bzw. stop über das in /etc/init.d/ liegende tool script ausgeführt werden.

Wenn ich nun (wie normal üblich) einen symlink:

ln -s /etc/init.d/toolsvc /etc/rc3.d/S40toolsvc
/etc/init.d/tool != /etc/init.d/toolsvc
wenn ich das wie Du schreibst ausführe kommt folgender Fehler:

/etc/init.d# ln -s /etc/init.d/tool != /etc/init.d/toolsvc
ln: Beim Erzeugen mehrerer Verknüpfungen muss das letzte Argument ein Verzeichnis sein

Oder hab ich nen Denkfehler ?

Da ein ln -s /etc/init.d/tool!= /etc/rc3.d/toolsvc auch nur eine tote Datei anlegt und dass ohne RunLevel!

Gruß, PHPman
User avatar
Joe User
Project Manager
Project Manager
Posts: 11189
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by Joe User »

Das "!=" bedeutet "ungleich", was wiederum bedeutet, dass Dein erster Symlink ins Leere zeigt...
phpman
Posts: 66
Joined: 2003-11-02 23:06
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by phpman »

Hallo,
Joe User wrote:Das "!=" bedeutet "ungleich", was wiederum bedeutet, dass Dein erster Symlink ins Leere zeigt...
Danke für die Erklärung! Ganz schlau bin ich aber net geworden, für was benötige ich normal eine "!=" variable ?

Eben hab aber eine einfachere Lösung gefunden mit bordmitteln von Debian.

mainsvr10: /etc/init.d# update-rc.d toolsvc defaults
Adding system startup for /etc/init.d/toolsvc ...
/etc/rc0.d/K20toolsvc -> ../init.d/toolsvc
/etc/rc1.d/K20toolsvc -> ../init.d/toolsvc
/etc/rc6.d/K20toolsvc -> ../init.d/toolsvc
/etc/rc2.d/S20toolsvc -> ../init.d/toolsvc
/etc/rc3.d/S20toolsvc -> ../init.d/toolsvc
/etc/rc4.d/S20toolsvc -> ../init.d/toolsvc
/etc/rc5.d/S20toolsvc -> ../init.d/toolsvc

Gruß, PHPman
User avatar
Joe User
Project Manager
Project Manager
Posts: 11189
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by Joe User »

phpman wrote:für was benötige ich normal eine "!=" variable ?
Dein Init-Script heisst tool und Dein Symlink zeigte auf toolsvc, auf diesen "Ungleich" sollte Dich das "!=" hinweisen.

BTW: Dieses Zeichen lernt man spätestens in der fünften Klasse...
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by gierig »

Du hast dir zwar schon selber geholfen, aber hier steht noch was was ich nicht so stehen lassen kann.
ln -s /etc/init.d/toolsvc /etc/rc3.d/S40toolsvc
Im Prinzip richtig (sofern die Dateien auch existieren und das Script funktioniert und so). Allerdings nur im Runlevel 3!.
Ein Debian (und viele andere) benutzen aber level2 als Default
runlevel. Das Script würde also nicht ausgeführt sofern der Runlevel
nicht geändert wurde.

Code: Select all

/#grep default /etc/inittab
# The default runlevel.
id:2:initdefault:

bzw:
/#>runlevel
N 2

Was mich dazu bringt das das hier falsch ist

Code: Select all

Sxxtoolsvc (xx) ist der Runlevel
SXX gibt die Position an, an welcher Stelle im jeweiligen Runlevel das
Script gestartet wird.
phpman
Posts: 66
Joined: 2003-11-02 23:06
 

Re: Debian 3.1 Script Ausführung bei Systemstart (Autostart)

Post by phpman »

Guten Morgen,
Joe User wrote:
phpman wrote:für was benötige ich normal eine "!=" variable ?
>Dein Init-Script heisst tool und Dein Symlink zeigte auf toolsvc, auf >diesen "Ungleich" sollte Dich das "!=" hinweisen.
Okay, jetzt weiss ich worauf Du hinaus wolltest. Ging erst davon aus, dass ggf. mit der != variable eine Wert mit in die Link Verknüpfung eingefügt werden könnte. Daher auch meine seltsame Frage dazu.
BTW: Dieses Zeichen lernt man spätestens in der fünften Klasse...
schon klar :)

Gruß, PHPman