Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Überwachung iobroker auf Absturz

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Überwachung iobroker auf Absturz

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
6 Beiträge 3 Kommentatoren 2.4k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • sissiwupS Offline
    sissiwupS Offline
    sissiwup
    schrieb am zuletzt editiert von
    #1

    Hallo,

    folgendes habe ich gebastelt, um meinen iobroker neu zu starten, falls er mal das zeitliche segnet (passiert bei mir so alle paar Tage)

    test-iobroker.sh:

    #!/bin/bash
    logfile=/opt/test-iobroker.log
    
    if [ $(ls -1 /opt | grep -c noiobroker) = 0 ];
    then 
      echo "$(date) ioBroker sollte laufen"
    else
      echo "$(date) ioBroker gestoppt"
      exit 0
    fi
    
    echo "$(date) Teste"
    
    if [ $(ps -A | grep -c io.js-controlle) = 0 ];
    then 
      echo "$(date) io.js-controlle laueft nicht" >> $logfile
      /opt/kill-iobroker.sh >> $logfile
      echo "$(date) Prozesse gestoppt" >> $logfile
      sleep 60
      echo "$(date) Starte iobroker" >> $logfile
      cd /opt/iobroker
      iobroker start >> $logfile
      echo "$(date) iobroker gestartet" >> $logfile 
    else
      echo "$(date) alle ok" >> $logfile
    fi
    
    

    Es wird geprüft ob die Datei /opt/noiobroker vorhanden ist, wenn ja, dann soll aktuell auch kein iobroker laufen

    z.B. beim Backup

    #!/bin/bash
    echo "$(date) Starte Backup"
    touch /opt/noiobroker
    

    Am Ende des Scripts natürlich nicht vergessen /opt/noiobroker zu löschen

    echo "$(date) Beende Backup"
    rm /opt/noiobroker
    
    

    Um das ganze zu automatisieren:

    /etc/crontab ergänzen um:

    (*/x = alle x Minuten)

    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file
    # and files in /etc/cron.d. These files also have username fields,
    # that none of the other crontabs do.
    
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # m h dom mon dow user	command
    17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
    25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
    0  4    * * *   root    /opt/backup.sh >> /opt/backup.log
    */5 *   * * *   root    /opt/test-iobroker.sh >> /opt/test-iobroker.log
    #
    
    

    Und zu guter letzt noch das

    kill-iobroker.sh

    #!/bin/bash
    killall -9 io.js-controller
    killall -9 io.admin.0
    pgrep -f '^io.*' |xargs kill -9
    pgrep -f '^node-red*' |xargs kill -9
    
    

    Hier ggf. noch weitere Adapter ergänzen.

    Wenn ihr nach dem Neustart im log Meldungen seht das Adapter neu gestartet werden aber noch welche laufen, dann habt ihr hier einen Adapter vergessen.

    MfG

    Sissi

    –-----------------------------------------

    1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      Hat OSX auch killall Kommando?

      1 Antwort Letzte Antwort
      0
      • sissiwupS Offline
        sissiwupS Offline
        sissiwup
        schrieb am zuletzt editiert von
        #3

        @Bluefox:

        Hat OSX auch killall Kommando? `

        Ja:

        KILLALL(1)                BSD General Commands Manual               KILLALL(1)
        
        NAME
             killall -- kill processes by name
        
        SYNOPSIS
             killall [-delmsvz] [-help] [-u user] [-t tty] [-c procname] [-SIGNAL]
                     [procname ...]
        
        DESCRIPTION
             The killall utility kills processes selected by name, as opposed to the
             selection by pid as done by kill(1).  By default, it will send a TERM
             signal to all processes with a real UID identical to the caller of
             killall that match the name procname.  The super-user is allowed to kill
             any process.
        
             The options are as follows:
        
                   -v          Be more verbose about what will be done.
        
                   -e          Use the effective user ID instead of the (default) real
                               user ID for matching processes specified with the -u
                               option.
        
                   -help       Give a help on the command usage and exit.
        
                   -l          List the names of the available signals and exit, like
                               in kill(1).
        
                   -m          Match the argument procname as a (case sensitive) regu-
                               lar expression against the names of processes found.
                               CAUTION!  This is dangerous, a single dot will match
                               any process running under the real UID of the caller.
        
                   -s          Show only what would be done, but do not send any sig-
                               nal.
        
                   -d          Print detailed information about the processes matched,
                               but do not send any signal.
        
                   -SIGNAL     Send a different signal instead of the default TERM.
                               The signal may be specified either as a name (with or
                               without a leading SIG), or numerically.
        
                   -u user     Limit potentially matching processes to those belonging
                               to the specified user.
        
                   -t tty      Limit potentially matching processes to those running
                               on the specified tty.
        
                   -c procname
                               When used with the -u or -t flags, limit potentially
                               matching processes to those matching the specified
                               procname.
        
                   -z          Do not skip zombies.  This should not have any effect
                               except to print a few error messages if there are zom-
                               bie processes that match the specified pattern.
        
        ALL PROCESSES
             Sending a signal to all processes with uid XYZ is already supported by
             kill(1).  So use kill(1) for this job (e.g. $ kill -TERM -1 or as root $
             echo kill -TERM -1 | su -m <user>)
        
        EXIT STATUS
             The killall command will respond with a short usage message and exit with
             a status of 2 in case of a command error.  A status of 1 will be returned
             if either no matching process has been found or not all processes have
             been signalled successfully.  Otherwise, a status of 0 will be returned.
        
        DIAGNOSTICS
             Diagnostic messages will only be printed if requested by -d options.
        
        SEE ALSO
             kill(1), sysctl(3)
        
        HISTORY
             The killall command appeared in FreeBSD 2.1\.  It has been modeled after
             the killall command as available on other platforms.
        
        AUTHORS
             The killall program was originally written in Perl and was contributed by
             Wolfram Schneider, this manual page has been written by Jorg Wunsch.  The
             current version of killall was rewritten in C by Peter Wemm using
             sysctl(3).</user> 
        

        MfG

        Sissi

        –-----------------------------------------

        1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          tesso
          schrieb am zuletzt editiert von
          #4

          Das killen der Prozesse lässt sich universeller lösen.

           pgrep -f '^io.*' |xargs kill -9
          pgrep -f '^node-red*' |xargs kill -9
          
          1 Antwort Letzte Antwort
          0
          • sissiwupS Offline
            sissiwupS Offline
            sissiwup
            schrieb am zuletzt editiert von
            #5

            Hallo,

            Danke. Hab ich so übernommen.

            MfG

            Sissi

            –-----------------------------------------

            1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


            1 Antwort Letzte Antwort
            0
            • sissiwupS Offline
              sissiwupS Offline
              sissiwup
              schrieb am zuletzt editiert von
              #6

              Anpassungen auf iobroker 0.8.0

              @sissiwup:

              Hallo,

              if [ $(ps -A | grep -c iobroker.js) = 0 ];
              then 
                echo "$(date) iobroker.js-controller laueft nicht" >> $logfile
              
              

              Und zu guter letzt noch das

              kill-iobroker.sh

              #!/bin/bash
              killall -9 iobroker.js-controller
              killall -9 io.admin.0
              pgrep -f '^iobroker.*' |xargs kill -9
              pgrep -f '^io.*' |xargs kill -9
              pgrep -f '^node-red*' |xargs kill -9
              
              ```` ` 

              MfG

              Sissi

              –-----------------------------------------

              1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              570

              Online

              32.7k

              Benutzer

              82.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe