PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rcproftpd geht nicht



Dennis_S
01.06.02, 17:07
Ich habe mir das RPM Packet des FTP-Servers proftpd gezogen und installiert. Habe dann auch eine Konfiguration mit hilfe von Webmin erstellt und gespeichert.
Mit dem aufruf "proftpd" startet der Server anstandslos und läuft auch. Mit killall proftpd kann ich den auch wieder beenden. Aber was ist mit rcproftpd???? Ich will den Server ja auch in die Bootprozedur mit einschließen. Warum nur funktioniert das nicht? Hab ich etwa ein falsches Packet,..oder was? Ich habe in der Konfiguration eingestellt, dass es ihn Standalone betreiben will und das geht ja auch. Aber irgentwas fehlt...
Das Packet heißt übrigens:
proftpd-1.2.5rc1-1.i386.rpm

Newbie2001
01.06.02, 18:23
ganz einfach du hast redhat rpms gezogen und SuSe sind die einzigen die diese beschissenen rc-links haben. dein problem dürfte wie folgt gelößt werden:
ln -s /etc/init.d/proftpd /usr/sbin/rcproftpd

Dennis_S
01.06.02, 19:37
geht leider nicht, weil die datei /etc/init.d/proftpd nicht existiert.

Newbie2001
01.06.02, 19:42
oha, naja, dann musst du mal ein initskript schreiben. meistens befindet sich im Ordner /etc/init.d eine datei names skeleton, das ist eine skelletdatei. kpier deren inhalt in einen neue Datei und ändere die Pfade so dass sie für den proftpd passen, danach musst du diesem neuen skript nur noch den namen proftpd geben. dann hast du das init-skkript und kannst den link legen.

Dennis_S
01.06.02, 19:51
ich probier's, aber wunder dich nicht, wenn ich gleich schreie......:D

Dennis_S
01.06.02, 20:04
na ja,..ich schrei' nicht direkt. Also das Script funzt, jedoch nicht ohne Fehler auszugeben und zwar folgende:
rcproftpd start
/usr/sbin/rcproftpd: /etc/proftpd.conf: line 1: syntax error near unexpected token `<Global>'
/usr/sbin/rcproftpd: /etc/proftpd.conf: line 1: `<Global>'
Starting PROFTPD-Server done

Diese Fehlermeldung gibt er immer aus. Ob ich nun starte oder stoppe. Aber der Server wird gestartet bzw gestoppt. Nur scheint da was anderes Faul zu sein. Hier ist das Script, das ich geschrieben habe:
#! /bin/sh
# Copyright (c) 1995-2002 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Kurt Garloff <feedback@suse.de>
#
# /etc/init.d/FOO
#
# and symbolic its link
#
# /(usr/)sbin/rcFOO
#
# LSB compliant service control script; see http://www.linuxbase.org/spec/
#
# System startup script for some example service or daemon FOO (template)
#
### BEGIN INIT INFO
# Provides: FOO
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start FOO to allow XY and provide YZ
# continued on second line by '#<TAB>'
### END INIT INFO
#
# Note on Required-Start: It does specify the init script ordering,
# not real dependencies. Depencies have to be handled by admin
# resp. the configuration tools (s)he uses.

# Source SuSE config (if still necessary, most info has been moved)
test -r /etc/rc.config && . /etc/rc.config

# Check for missing binaries (stale symlinks should not happen)
FOO_BIN=/usr/sbin/proftpd
test -x $FOO_BIN || exit 5

# Check for existence of needed config file and read it
FOO_CONFIG=/etc/proftpd.conf
test -r $FOO_CONFIG || exit 6
. $FOO_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

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

case "$1" in
start)
echo -n "Starting PROFTP-Server"
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.

# NOTE: startproc returns 0, even if service is
# already running to match LSB spec.
startproc $FOO_BIN

# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down PROFTP-Server"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.

killproc -TERM $FOO_BIN

# Remember status and be verbose
rc_status -v
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
$0 status >/dev/null && $0 restart

# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start

# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart.

echo -n "Reload PROFTP-Server"
## if it supports it:
killproc -HUP $FOO_BIN
#touch /var/run/FOO.pid
rc_status -v

## Otherwise:
#$0 stop && $0 start
#rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signalling, do nothing (!)

# If it supports signalling:
echo -n "Reload PROFTP-Server"
killproc -HUP $FOO_BIN
#touch /var/run/FOO.pid
rc_status -v

## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
status)
echo -n "Checking PROFTPServer: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.

# Return value is slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running

# NOTE: checkproc returns LSB compliant status values.
checkproc $FOO_BIN
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload,
## print out the argument which is required for a reload.

test /etc/F
OO/FOO.conf -nt /var/run/FOO.pid && echo reload
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit

Newbie2001
01.06.02, 21:06
das initskript sieht eigentlich gant gut aus, damit sollte es auf jedenfall keine probs. das problem liegt in deiner proftpd.conf. aber so lange er ohne probs startet, sollte dich das nicht sonderlich stören. poste trotzdem mal deine proftpd.conf, villeicht finden wir einen fehler.

Dennis_S
01.06.02, 21:11
Ich glaub meine proftpd.conf ist ein Witz,..die müsste doch viel größer sein :ugly: :ugly: :ugly:

Global
ServerIdent on "Welcome to Xerxes FTP-Server"
/Global
ServerType standalone
ServerIdent on "Welcome to Xerxes FTP-Server"
Anonymous /home/ftp/
/Anonymous

Ich musste die Klammern <> entfernen

Newbie2001
01.06.02, 21:22
wenn ich mich nicht irre, braucht man doch diese &lt;Global&gt; und &lt;/Global&gt; dinger gar nicht.

Dennis_S
01.06.02, 21:31
hmmm,...ich hab's mal weggenommen, und jetzt sieht es noch schlimmer aus.
Mir scheint fast so, als ob der irgentwas ausführen will aus der conf datei,..aber warum????

xerxes:/etc # rcproftpd stop
/usr/sbin/rcproftpd: ServerType: command not found
/usr/sbin/rcproftpd: ServerIdent: command not found
/usr/sbin/rcproftpd: /etc/proftpd.conf: line 3: syntax error near unexpected token `/home/ftp/>'
/usr/sbin/rcproftpd: /etc/proftpd.conf: line 3: `<Anonymous /home/ftp/>'
Shutting down PROFTP-Server done
xerxes:/etc #

Newbie2001
01.06.02, 21:35
ne dann laß die global dinger wo sie sind. dann geht der proftpd wenigstens. ich kann jetzt keinen syntax-fehler sehen, aber villeicht fehlt irgendwas.

Dennis_S
01.06.02, 21:37
in dem init script steht doch irgendwo, das er auf die conf datei zugreifen soll. Aber das braucht das script doch garnicht. kann man das nicht irgendwie unterbinden?

Newbie2001
01.06.02, 21:41
naja er testet nur die existenz der datei. ich glaube es fehlt ganz einfach was in der config-file. er startet ja immerhin, und ohne config-file tut er das eigentlich nicht.

Dennis_S
01.06.02, 21:44
ja, nur macht es mir den anschein, als ob der nicht nur die existenz der config file testet sonder auch noch diese ausführt,...deshalb auch syntax error und solche sachen....

Newbie2001
01.06.02, 21:53
yo das stimmt. lass mal diese zeilen weg, bzw. kommentiere sie aus:
FOO_CONFIG=/etc/proftpd.conf
test -r $FOO_CONFIG || exit 6
. $FOO_CONFIG

Dennis_S
01.06.02, 21:57
:)
jo, so funzt das ohne Fehler
Diese Einstellung sollte doch auch keine Probleme machen in Dauerbetrieb, oder?
Ohne die conf Datei startet der Server sowieso nicht. Also ist es doch egal, ob das Init Scipt die Datei vorher testet oder nicht.....

Newbie2001
01.06.02, 22:00
nee, er testet das ding ja blos, das hat ja keine auswirkungen auf die weitere ausführung des init-skripts, bzw. des proftpd

Dennis_S
01.06.02, 22:05
Dann lass ich das einfach so.
es funzt, und spuckt keine Fehler aus. Was kann schöner sein? :D
Danke, für deine Hilfe.

Ich hab bestimmt demnächst, das nächste Problem:rolleyes: