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: