[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: einzelner Befehl innerhalb eines Script wird nicht ausgeführt, wenn es per cron gestartet wird - in einer bash funktioniert es aber



Hallo Heiko,

lass dir mal $PATH in deinem Script ausgeben, wenn es mit cron gestartet wird.

Gruß
Matthias

Am 28. Oktober 2016 um 14:17 schrieb Heiko Weiß <h.weiss5@gmx.de>:
> Hallo,
>
> ich übersehe wahrscheinlich etwas und brauche daher mal Eure Mithilfe
> für meinen begrenzten Horizont.
>
> Auf einem Bananapi mit ARMBIAN Debian GNU/Linux 8 (jessie) 4.8.4-sunxi
> möchte ich per cron einen Dienst (prosody 0.9.10-1~jessie1
> armhf        Lightweight Jabber/XMPP server) überwachen.
>
> Dazu habe ich per crontab -e (per root) folgende Zeile eingefügt:
>  * * * * * /usr/local/sbin/dienstueberwachung_lua_5_1_chat (wird noch
> auf */5 * * * * geändert, falls es mal funktioniert)
>
> Die Rechte sind folgende:
> -rwxr-xr-x 1 root root 768 Okt 28 00:01
> /usr/local/sbin/dienstueberwachung_lua_5_1_chat
>
> Listing von dienstueberwachung_lua_5_1_chat:
>
> #!/bin/sh
> PROZ=prosody
> APP=$(ps aux | grep -v grep | grep prosody)
> if [ -n "$APP" ]
> then
>   echo "$APP"
>   echo "[$(date +"%Y-%m-%d %H:%M")]    lua laeuft"
>   echo "[$(date +"%Y-%m-%d %H:%M")]    lua laeuft" >>
> /var/log/lua-watchdog.log
>   echo "lua ist aktiv"
> else
>   echo "prosody wird gestartet"
>   echo "[$(date +"%Y-%m-%d %H:%M")]    lua wurde neu gestartet"
>   echo "[$(date +"%Y-%m-%d %H:%M")]    lua wurde neu gestartet" >>
> /var/log/lua-watchdog.log
>   cd  /usr/sbin/
>   /usr/bin/logger "cd  /usr/sbin/ ausgefuehrt: $(/bin/date)"
>   service prosody start
>   /usr/bin/logger "ausgefuehrt: $(/bin/date)"
> fi
>
> service cron restart ist erfolgt und meine eingebauten Überprüfungen
> funktionieren auch. Leider wird der prosody Dienst nur neu gestartet,
> wenn ich das script in einer bash starte, siehe folgendes Beispiel:
>
>  # /usr/local/sbin/dienstueberwachung_lua_5_1_chat
> prosody wird gestartet
> [2016-10-28 13:24]    prosody wurde neu gestartet
> Starting Prosody XMPP Server: prosody.
> ...
> bei nochmaligen start erscheint richtigerweise:
> # /usr/local/sbin/dienstueberwachung_lua_5_1_chat
> prosody  25340  1.3  0.6   8364  6248 ?        S    13:24   0:00
> /usr/bin/lua5.1 /usr/bin/prosody
> [2016-10-28 13:24]    prosody laeuft
> prosody ist aktiv
>
> manuelle Kontrolle:
> # /bin/ps ax | /bin/grep 'prosody' | /bin/grep -v '/bin/grep'
> 25340 ?        S      0:01 /usr/bin/lua5.1 /usr/bin/prosody
>
> Beende ich manuell prosody und schaue mir dann das Log an,
> welches durch den laufenden cron Job erzeugt wird:
> # tail -f /var/log/lua-watchdog.log
> [2016-10-28 14:06]    lua wurde neu gestartet
> [2016-10-28 14:07]    lua wurde neu gestartet
> [2016-10-28 14:07]    lua wurde neu gestartet
> (zwischendurch manueller Aufruf des Scriptes
> /usr/local/sbin/dienstueberwachung_lua_5_1_chat)
> [2016-10-28 14:08]    lua laeuft
> [2016-10-28 14:09]    lua laeuft
>
> scheint auch die if then else Schleife zu funktionieren.
> Nur, er startet den Dienst nicht :-(
>
> Hier noch ein Logfile, dass den Lauf des cron jobs anzeigt:
> # cat /var/log/syslog |grep 14\:06
> Oct 28 14:06:01 localhost CRON[26141]: (root) CMD
> (/usr/local/sbin/dienstueberwachung_lua_5_1_chat)
> Oct 28 14:06:01 localhost logger: cd  /usr/sbin/ ausgefuehrt: Fr 28. Okt
> 14:06:01 CEST 2016
> Oct 28 14:06:01 localhost logger: ausgefuehrt: Fr 28. Okt 14:06:01 CEST 2016
> Oct 28 14:06:01 localhost CRON[26137]: (CRON) info (No MTA installed,
> discarding output)
>
> Mit dem fehlenden MTA kann's doch nicht zusammenhängen?...
>
>
> /etc/init.d/prosody start habe ich als Ersatz für service prosody start
> auch schon getestet, da brachte aber keine Veränderung.
>
> Ich hoffe auf einen hilfreichen Hinweis ;-)
>
> Falls ich wichtige Fakten vergessen habe, bitte kurz darauf hinweisen...
>
>
> Grüße Heiko
>


Reply to: