Immer alle Benutzer zu Haus

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • RE: Immer alle Benutzer zu Haus

    Hallo zusammen,

    leider ist das Thema für mich immer noch eine Baustelle.
    Ich habe mal den SHC -sh "Scedular" mitgeschnitten (strace), was er macht, wenn ich eine nicht vorhandene IP-Adresse abfrage.

    Kann mir jemand was dazu erklären? Das kann ich nicht wirklich interpretieren:
    Wie bin ich vorgegangen:

    1.) Prozess des Scedular identfiziert:

    ps -ef |grep shc

    root 198 1 0 13:49 ? 00:00:01 /usr/bin/php /var/www/shc/index. php app=shc -sh

    2.) Dann strace -p 198 -o shc-sh.txt

    Im Anschluss habe ich im der Textdatei nach meiner Pseudo IP-Adresse (nicht bekannt per ping - $? = 0) gesucht und erhalte folgende Ausgabe:

    fcntl64(4, F_SETFD, 0) = 0
    read(4, "PING 192.164.164.164 (192.164.16"..., 8192) = 155
    read(4, "", 8192) = 0
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2677, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
    close(4)
    .....
    fcntl64(4, F_SETFD, 0) = 0
    read(4, "PING 192.164.164.164 (192.164.16"..., 8192) = 155
    read(4, "", 8192) = 0
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2689, si_uid=0, si_status=1, si_utime=0, si_stime=1} ---
    close(4)
    .....
    fcntl64(4, F_SETFD, 0) = 0
    read(4, "PING 192.164.164.164 (192.164.16"..., 8192) = 155
    read(4, "", 8192) = 0
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2685, si_uid=0, si_status=1, si_utime=1, si_stime=0} ---
    close(4) = 0
    ...
    fcntl64(4, F_SETFD, 0) = 0
    read(4, "PING 192.164.164.164 (192.164.16"..., 8192) = 155
    read(4, "", 8192) = 0
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2689, si_uid=0, si_status=1, si_utime=0, si_stime=1} ---
    close(4)
    ...
    read(4, "PING 192.164.164.164 (192.164.16"..., 8192) = 155
    read(4, "", 8192) = 0
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2693, si_uid=0, si_status=1, si_utime=0, si_stime=1} ---
    close(4)
    ...
    read(4, "PING 192.164.164.164 (192.164.16"..., 8192) = 155
    --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2697, si_uid=0, si_status=1, si_utime=0, si_stime=1} ---
    read(4, "", 8192) = 0
    close(4)

    Kann mir das jemand interpretieren bzw. hat jemand einen Tipp, was falsch läuft?

    Danke und Gruß

    raspco

    The post was edited 1 time, last by raspco ().

  • RE: Immer alle Benutzer zu Haus

    Hallo Agent47 und alle die mir hier noch einen Tipp geben können:

    Ich bin nochmal an der Stelle und verstehe deine Auswertung nicht ganz:

    in /var/www/shc/shc/lib/sheduler/tasks

    in der Datei userathomeupdatetask.class.php steht

    //Ping senden
    $state = exec(sprintf('ping -c 1 -W 1 %s', escapeshellarg($userAtHome->getIpAddress>

    //Auswerten
    if (strlen($state) > 0) {

    //online
    $userAtHome->setState(Element::STATE_ON);
    } else {

    //offline
    $userAtHome->setState(Element::STATE_OFF);


    Wenn also der Status größer 0 ist, ist die IP-Adresse Online?
    Beim Status 0 ist aber doch die IP-Adresse Online. Bei 1 Offline.

    Kannst du mir das kurz erläutern?

    Danke und Gruß

    The post was edited 1 time, last by raspco ().

  • Immer alle Benutzer zu Haus

    Ich Genie... Wie auf Github schon geschrieben.
    Es passt vom Code her alles. Hab bei meinem Test nur ne IP benutzt, die existiert hat...
    Bitte einmal ne PHP-Datei erstellen, wo genau das hier drin steht und die Ausgabe schicken. (Wenn nichts angezeigt wird, ist es auch OK.)

    PHP Source Code

    1. <?php error_reporting('E_ALL');
    2. echo exec(sprintf('ping -c 1 -W 1 192.168.178.31'));
    3. ?>


    Gruß
    [hr]
    <?php error_reporting('E_ALL');
    echo strlen(exec(sprintf('ping -c 1 -W 1 192.168.178.31')));
    ?>
    [hr]
    Code wurde nicht angezeigt

    The post was edited 1 time, last by Promasu ().

  • @agent47

    Darf ich den Punkt nochmal aufgreifen, ist ja schon ein bischen her. Ich habe seit heute das gleiche Problem. Die Rahmenbedingungen scheinen die gleichen wie bei raspco zu sein:

    Grundlage für die Installation ist ein frisches OSMC - das ja auf Jessie basieren soll. Alles was meines Wissen fehlt ist nachgeladen: make, g++, wireless-tools, cron. Habe die SHC Installation frisch nach Anleitung gemacht. Lediglich beim " install redis-server"gab es eine Warnung... Warning: The home directory `/var/lib/redis' does not belong to the user you are currently creating.

    Alles läuft, auch ein "ping" funktioniert, aber die Benutzer, oder eine beliebige IP Adresse wird immer als Online angezeigt. In den Logs ist mir nichts aufgefallen.

    Meine Vermutung, entweder ist es
    a) ein Rechte Problem oder
    b) es fehlt irgendein Paket, das die Funktion "Benutzer zu Hause" benötigt und OSMC nicht hat.

    Über Hilfe wäre ich dankbar.

    Viele Grüße