Hi Liste, grml habe ein etwas komisches problem mit nem deamon script von mir.. hier mal der quellcode. #!/bin/sh # # # Logsurfer Start u. Stop Script # . /etc/rc.status PIDFILE='/home/logsurfer/logsurfer.pid' rc_reset case "$1" in start) echo -n "Starting service logsurfer" /bin/su - logsurfer -c "/usr/bin/logsurfer -c /etc/logsurfer.conf -d /home/logsurfer/dumpfile -p $PIDFILE -f /var/log/ rc_status -v ;; stop) echo -n "Shutting down service logsurfer" pid="/bin/cat /home/logsurfer/logsurfer.pid" kill -TERM $pid && \ rm -f $PIDFILE rc_status -v ;; restart|reload) $0 stop && $0 start rc_status ;; *) echo "Usage: $0 {start|restart|reload|stop}" exit 1 esac rc_exit beim stoppen gibt er mir folgende fehlermeldung aus.. Shutting down service logsurfer/etc/init.d/logsurfer: kill: /bin/cat: no such pid /etc/init.d/logsurfer: kill: /home/logsurfer/logsurfer.pid: no such pid failed leider muss ich sagen das ich per hand die pid-nr auslesenkann.. nur halt mit dem script nett :-( Jemand nen tip? mfg Rolf Varga
On Fre, 31 Aug 2001, Rolf Varga wrote:
case "$1" in pid="/bin/cat /home/logsurfer/logsurfer.pid" ^ ^ kill -TERM $pid && \ rm -f $PIDFILE
Shutting down service logsurfer/etc/init.d/logsurfer: kill: /bin/cat: no such pid /etc/init.d/logsurfer: kill: /home/logsurfer/logsurfer.pid: no such pid
Schau mal genau hin ;) Ach ja, startproc/checkproc/killproc sind evtl. geeigneter... schau in die anderen startscripte fuer Beispiele... -dnh -- "All software sucks, but we still use software. All hardware sucks, but I've got quite a pile of that around me too. All social interaction sucks, but getting loved and laid beats the crap out of the alternatives much as a real OS beats the crap out of GameOS." -- adb in b.l-w
Rolf Varga wrote:
Hi Liste,
grml habe ein etwas komisches problem mit nem deamon script von mir.. hier mal der quellcode.
#!/bin/sh # # # Logsurfer Start u. Stop Script #
. /etc/rc.status
PIDFILE='/home/logsurfer/logsurfer.pid'
rc_reset case "$1" in start) echo -n "Starting service logsurfer"
/bin/su - logsurfer -c "/usr/bin/logsurfer -c /etc/logsurfer.conf -d /home/logsurfer/dumpfile -p $PIDFILE -f /var/log/
rc_status -v ;; stop) echo -n "Shutting down service logsurfer"
pid="/bin/cat /home/logsurfer/logsurfer.pid"
Hi, versuch doch mal: pid=`/bin/cat $PIDFILE` Das ` sind backticks! oder alternative (Bash) Schreibweise: pid=$( /bin/cat $PIDFILE ) Damit weist Du pid das Ergebnis der Ausfuehrung von cat zu. man bash: command substitution Du hast pid nur den String "/bin/cat /home/logsurfer/logsurfer.pid" zugewiesen und damit kann kill nun mal nix anfangen ;) Da Du PIDFILE oben schon definiert hast, solltest Du es auch durchgaenging nutzen, sonst ist das eine ekelhafte Fehlerquelle. -- so long... bernd ------------------------------------------------------------------------
participants (3)
-
Bernd Obermayr
-
David Haller
-
Rolf Varga