Lighttpd init.d Script

Apache, Lighttpd, nginx, Cherokee
twins
Posts: 13
Joined: 2008-02-12 15:05

Lighttpd init.d Script

Post by twins » 2008-02-12 15:43

Hallo,

Ich habe einen Strato vServer und nutze Debian Sarge und Lighttpd 1.4.1.5 - weiß Lighttpd ist schon etwas alt, da ich aber nicht weiß wie man Lighty aktualisieren kann ohne Datenverlust wollte ich ihn demnächst komplett runter werfen und die neuste Version drauf installieren.

Jetzt aber mal zu meiner Frage, ich habe mir Lighty damals komplett selber installiert, also Source Code gezogen, kompiliert und dann installiert.
Allerdings funktioniert das init.d Script nicht so richtig.

Momentan beende ich Lighttpd so (pid):
kill 29231


Starten mache ich so:
lighttpd -f /etc/lighttpd/lighttpd.conf


Da ich wegen Cronjobs (Rotation der Logs) nicht immer über die pid gehen kann, möchte ich gerne das init.d Script (/etc/init.d/lighttpd stop + start + restart) nutzen.
Nur leider funktioniert das nicht:
/etc/init.d/lighttpd: line 53: /etc/rc.status: Datei oder Verzeichnis nicht gefunden


Es handelt sich dabei um das Script was dem Paket von lighttpd.net beilag:

Code: Select all

# Check for existence of needed config file and read it
LIGHTTPD_CONFIG=/etc/lighttpd/lighttpd.conf
test -r $LIGHTTPD_CONFIG || exit 6
# . $LIGHTTPD_CONFIG

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     ditto but be verbose in local rc status
#      rc_status -v -r  ditto and clear the local rc status
#      rc_failed        set local and overall rc status to failed
#      rc_failed <num>  set local and overall rc status to <num><num>
#      rc_reset         clear local rc status (overall remains)
#      rc_exit          exit appropriate to overall rc status
#      rc_active   checks whether a service is activated by symlinks
. /etc/rc.status

# First reset status of this service
rc_reset


ls - la lighttpd:
-rwxrwxr-x 1 root root 4574 2007-12-20 14:41 lighttpd

Der Webserver läuft unter dem Nutzer lighttpd, das Script gehört root... daran kann es doch nicht liegen, oder? Ansonsten bekäme ich ja eine Meldung in der Art "Zugriff verweigert".
Der sagt mir /etc/rc.status nicht gefunden, aber auf was muss ich das setzen?

Danke für eure Antworten!

Viele Grüße,
Twins

braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Re: Lighttpd init.d Script

Post by braindead » 2008-02-12 15:48

Das init Script ist für ein SuSE System und wir so net auf debian funktionieren. Versuchs mal mit dem hier (lag lightty bis version 1.4.x bei):

Code: Select all

#! /bin/sh
#
# lighttpd              This init.d script is used to start lighttpd.
#                       It basically just calls lighttpd.

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/lighttpd
OPTS="-f /etc/lighttpd/lighttpd.conf"
NAME=lighttpd
DESC=lighttpd

test -x $DAEMON || exit 0

# Include lighttpd defaults if available
if [ -f /etc/default/lighttpd ] ; then
        . /etc/default/lighttpd
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet 
                --pidfile /var/run/$NAME.pid --exec $DAEMON -- $OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        if start-stop-daemon --stop --pidfile /var/run/$NAME.pid
                --exec $DAEMON; then
                rm -f /var/run/$NAME.pid
                echo "$NAME."
        fi
        ;;
  reload)
        #
        #       If the daemon can reload its config files on the fly
        #       for example by sending it SIGHUP, do it here.
        #
        #       If the daemon responds to changes in its config file
        #       directly anyway, make this a do-nothing entry.
        #
        echo "Reloading $DESC configuration files."
        start-stop-daemon --stop --signal 1 --quiet --pidfile /var/run/$NAME.pid
                --exec $DAEMON
  ;;
  restart|force-reload)
        #
        #       If the "reload" option is implemented, move the "force-reload"
        #       option to the "reload" entry above. If not, "force-reload" is
        #       just the same as "restart".
        #
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/$NAME.pid
                --exec $DAEMON
        rm -f /var/run/$NAME.pid
        sleep 1
        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid
                --exec $DAEMON -- $OPTS
        echo "$NAME."
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        #echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Lighttpd init.d Script

Post by Joe User » 2008-02-12 15:50

Was spricht gegen "apt-get install lighttpd"?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

twins
Posts: 13
Joined: 2008-02-12 15:05

Re: Lighttpd init.d Script

Post by twins » 2008-02-12 17:23

@braindead:
er sagt mir jetzt immer "line 55: start-stop-daemon: command not found".
Joe User wrote:Was spricht gegen "apt-get install lighttpd"?

Ich habe da keinen Lerneffekt, da ich Lighttpd selber installieren will damit auch besser über meine Installation bescheid weiß. Bei apt-get weiß ich nicht in welches Verzeichnis Lighttpd installiert wurde, mit welchen Modulen usw.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Lighttpd init.d Script

Post by Joe User » 2008-02-12 18:11

Debian hat sicherlich ein Äquivalent zu Gentoos:

Code: Select all

equery files lighttpd

Und Lighttpds Module werden so angezeigt:

Code: Select all

lighttpd -V
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

twins
Posts: 13
Joined: 2008-02-12 15:05

Re: Lighttpd init.d Script

Post by twins » 2008-02-12 22:16

Joe User wrote:Und Lighttpds Module werden so angezeigt:

Code: Select all

lighttpd -V

Danke, dass wusste ich noch nicht. :-D

Jetzt frage ich mich nur, warum er den Befehl start-stop-daemon im Script nicht kennt... #-o

hornox
Posts: 139
Joined: 2005-09-22 23:09

Re: Lighttpd init.d Script

Post by hornox » 2008-02-12 22:24

Twins wrote:Jetzt frage ich mich nur, warum er den Befehl start-stop-daemon im Script nicht kennt... #-o
start-stop-daemon ist in /sbin, also entweder mit Pfadangabe oder als root aufrufen.

twins
Posts: 13
Joined: 2008-02-12 15:05

Re: Lighttpd init.d Script

Post by twins » 2008-02-13 12:32

Ah danke, jetzt funktioniert es. :)