[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



Einen dickes Dankeschön für die Unterstützung an Stefan und Matthias :-)


Ich habe das Script mal angepasst
  echo "[$PATH]   Path Abfrage" >> /var/tmp/meinlog_path
  service prosody start 2>&1 | tee /var/tmp/meinlog


# tail -f /var/tmp/meinlog_path
[/usr/bin:/bin]   Path Abfrage

# tail -f /var/tmp/meinlog
/usr/local/sbin/dienstueberwachung_lua_5_1_chat: 17:
/usr/local/sbin/dienstueberwachung_lua_5_1_chat: service: not found


Ich habe dann nochmal (wegen der 'service: not found' Meldung die
folgende Zeile umgestellt, um die sich ändernde Log Meldung zu bekommen

/etc/init.d/prosody start 2>&1 | tee /var/tmp/meinlog

# tail -f /var/tmp/meinlog
Starting Prosody XMPP Server: prosody/etc/init.d/prosody: 59:
/etc/init.d/prosody: start-stop-daemon: not found
 failed!

scheinbar hängt es ja doch mit dem unbekannten Pfad zu service zusammmen?!
# whereis service
service: /usr/sbin/service /usr/share/man/man8/service.8.gz

hab dann nochmal die Zeile gändert
  /usr/sbin/service prosody start 2>&1 | tee /var/tmp/meinlog

# tail -f /var/tmp/meinlog
Starting Prosody XMPP Server: prosody/etc/init.d/prosody: 59:
/etc/init.d/prosody: start-stop-daemon: not found
 failed!


Ich kann die Meldungen in den Logs irgendwie nicht richtig
interpretieren. Ist es sinnvoll am Beginn des Scriptes folgendes
hinzuzufügen? Oder welches Herangehen bringt mich zur Fehlerfindung weiter

PATH=$PATH:/etc/init.d
export PATH

VG Heiko

PS: ... (und PROZ ist momentan ungenutzt ...) ...
ich weiß: Ich hatte die Variable vorher an mehreren Stellen genutzt,
aber zwecks Fehlerminimierung wieder herausgenommen.


Am 28.10.2016 um 17:23 schrieb Matthias Böttcher:
> 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: