Hallo zusammen,
ich bekomme es nicht hin das meine Fhem nach Neuinstallation von Perl startet.
Ich glaube ich habe alle anderen Perl Version von meiner Synology 212+ entfernt.
Wenn ich unter Putty perl -V aufrufe bekomme ich das angezeigt:
Summary of my perl5 (revision 5 version 24 subversion 1) configuration:
Platform:
osname=linux, osvers=2.6.36, archname=arm-linux-glibc
uname='Linux OpenWrt 2.6.36 #1 SMP Thu Jan 1 12:00:00 CEST 2015 arm GNU/Linux'
config_args='-der -Dusethreads'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='arm-openwrt-linux-gnueabi-gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pipe -march=armv5te -mtune=xscale -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -I/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/include -I/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/include -I/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/usr/include -I/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/include',
optimize='-O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -O2 -pipe -march=armv5te -mtune=xscale -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -I/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/include -I/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/include -I/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/usr/include -I/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/include'
ccversion='', gccversion='6.3.0', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234, doublekind=3
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8, longdblkind=0
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='arm-openwrt-linux-gnueabi-gcc', ldflags ='-rdynamic -L/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/lib -L/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link=/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 -L/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/usr/lib -L/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/lib -L/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/lib'
libpth=/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/lib /media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/lib
libs=-lpthread -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
libc=, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-fPIC -Wl,-rpath,/opt/lib/perl5/5.24/CORE:/opt/lib'
cccdlflags='-fPIC', lddlflags='-shared -rdynamic -L/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/lib -L/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link=/media/ware4/Entware-ng.2017.05/staging_dir/target-arm_xscale_glibc-2.23_eabi/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 -L/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/usr/lib -L/media/ware4/Entware-ng.2017.05/staging_dir/toolchain-arm_xscale_gcc-6.3.0_glibc-2.23_eabi/lib'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV USE_ITHREADS USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO
USE_PERL_ATOF USE_REENTRANT_API
Built under linux
Compiled at May 30 2017 19:19:30
@INC:
/opt/lib/perl5/5.24
Ich habe hier fhem.sh gefunden unter: /usr/local/FHEM/app/scripts und /volume1/@appstore/FHEM/app/scripts
wobei das die gleiche sein dürfte.
Hier der Inhalt der fhem.sh
#!/bin/sh
#
#
HOME=/usr/local/FHEM
#PERL=/usr/local/perl
PERL=/opt/bin/perl5.24.1
#PERL=/opt/
KMOD=/var/packages/usb-driver-kernel
PATH=$HOME:$PERL:$PATH
export PATH
fhem_BIN=${HOME}/bin/fhem.pl
test -x ${fhem_BIN} || { echo "${fhem_BIN} not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
fhem_CONFIG=${HOME}/etc/fhem.cfg
test -r ${fhem_CONFIG} || { echo "${fhem_CONFIG} not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
fhem_LOG=${HOME}/var/log/fhem-`date +"%Y-%m"`.log
perl_BIN=${PERL}/bin/perl
if [ -x ${perl_BIN} ]; then
export PERL5LIB="${PERL}/lib/5.16.0:${PERL}/lib/site_perl/5.16.0"
else
perl_BIN=`which perl`
fi
#
case "$1" in
start)
echo "Starting fhem "
if [ -d "${KMOD}" ]; then
if [ ! -f "${KMOD}/enabled" ]; then
${KMOD}/scripts/start-stop-status start
touch ${KMOD}/enabled && chmod 775 ${KMOD}/enabled
fi
fi
${perl_BIN} $fhem_BIN $fhem_CONFIG
;;
stop)
echo "Shutting down fhem "
${perl_BIN} $fhem_BIN 7072 shutdown
;;
restart)
$0 stop
$0 start
;;
status)
echo -n "Checking for service fhem "
ps|grep fhem.pl
;;
log)
test -r $fhem_LOG || { echo "$fhem_LOG not existing"; exit 0; }
echo $fhem_LOG
;;
*)
echo "Usage: $0 {start|stop|status|restart|log}"
exit 1
;;
esac
exit 0
Ich denke das der Pfad zum Perl falsch ist? Was muss ich hier setzen?
Danke für die Hilfe!!
Thomas
https://forum.fhem.de/index.php?topic=60644.0
Hallo zusammen,
das hat mir leider nicht geholfen.
Ich kann per Konsole über das Startskript Fhem starten das klappt ohne Problem. Aber ich bekomme es nicht hin das beim Start der Synology NAS Fhem gestartet wird. Ich habe hier auch keine Log Ausgaben dazu gefunden. Ich denke ich habe die alte Version des Fischer Fhem Paketes mein Startskript liegt unter /usr/local/FHEM/app/scripts . Muss ich es noch wo anders hin kopieren? Ich habe auch kein anderes gefunden.
Ich hab auch noch einen anderen Fehler der vielleicht etwas damit zu tun hat:
Ich verwende eine Shell Script um eMails zu versenden und nach der neu Installation von Perl bekomme ich die Meldung das Perl nicht gefunden wird wenn das Skript versendet werden soll.
/usr/local/sendemail/fhem2mail: /usr/local/sendemail/sendEmail: /usr/local/perl/bin/perl: bad interpreter: No such file or directory
Ich habe nicht gefunden wo ich in Fhem oder auch im Sendmail Skript einen Pfad zu Perl gesetzt habe, somit habe ich keine Ahnung wo der herkommt.
Ich habe den Pfad in der /etc/Profil folgender Maßen gesetzt: PATH=/opt/bin:opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin
Hier die Ausgabe zu Feminfo:
System Info
ConfigType: configFile
SVN rev: 15031
OS: linux
Perl: 5.24.1
Was hast Du in /usr/local/FHEM/etc/fhem.sh ?
Edit: vielleicht hilft das dann? https://forum.fhem.de/index.php/topic,56207.msg497326.html#msg497326
Hallo amenomade,
mein Startskript sieht so aus:
#!/bin/sh
#
#
HOME=/usr/local/FHEM
#PERL=/usr/local/perl
#PERL=/opt/lib/perl5/5.24
Perl=/opt/bin/perl
#PERL=/opt/
KMOD=/var/packages/usb-driver-kernel
PATH=$HOME:$PERL:$PATH
export PATH
fhem_BIN=${HOME}/bin/fhem.pl
test -x ${fhem_BIN} || { echo "${fhem_BIN} not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
fhem_CONFIG=${HOME}/etc/fhem.cfg
test -r ${fhem_CONFIG} || { echo "${fhem_CONFIG} not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
fhem_LOG=${HOME}/var/log/fhem-`date +"%Y-%m"`.log
perl_BIN=${PERL}/bin/perl
if [ -x ${perl_BIN} ]; then
export PERL5LIB="${PERL}/lib/5.16.0:${PERL}/lib/site_perl/5.16.0"
else
perl_BIN=`which perl`
fi
#
case "$1" in
start)
echo "Starting fhem "
if [ -d "${KMOD}" ]; then
if [ ! -f "${KMOD}/enabled" ]; then
${KMOD}/scripts/start-stop-status start
touch ${KMOD}/enabled && chmod 775 ${KMOD}/enabled
fi
fi
${perl_BIN} $fhem_BIN $fhem_CONFIG
;;
stop)
echo "Shutting down fhem "
${perl_BIN} $fhem_BIN 7072 shutdown
;;
restart)
$0 stop
$0 start
;;
status)
echo -n "Checking for service fhem "
ps|grep fhem.pl
;;
log)
test -r $fhem_LOG || { echo "$fhem_LOG not existing"; exit 0; }
echo $fhem_LOG
;;
*)
echo "Usage: $0 {start|stop|status|restart|log}"
exit 1
;;
esac
exit 0
In dem Skript wird der Perl Pfad gesetzt. Ist der falsch? Ich habe meinen Opt Ordner mit den Perl Dateien angehangen.
Gruß und Danke für die Hilfe
Thomas
ZitatIst der falsch?
Vom Ziel des symbolischen Link "perl" in /opt/bin abhängig.
In dem Startskript würde ich auf jeden Fall "PERL=" (gross) statt "Perl=" schreiben.
Ich habe Perl nach folgender Anleitung installiert: https://github.com/Entware-ng/Entware-ng/wiki/Install-on-Synology-NAS
Und starte nun mein Opt indem ich Opt mounte
Muss ich hier noch was machen? Wie gesagt wenn ich das Startskript direkt von Konsole aus starte funktioniert alles
Hier noch der Symlink als Anhang
Hast Du den Skript geändert? (PERL=)
Ja hab ich, hat aber leider nichts geholfen
Was steht in /var/log/messages?
Nichts
Er kommt gar nicht da hin aber beim Start in der NAS Oberfläche rödelt er rum und dann steht da das es läuft. Ich finde aber auch kein 2tes Startskript
Gibt es gar keine Log in /var/log ?
Nur die wenn ich über die Konsole starte aber nicht wenn ich über die NAS starte
Vermutlich wird dein Skript dann gar nicht aufgerufen.
Was meinst Du genau mit "wenn ich über die NAS starte" ? Befehle oder Bildschirmkopien.
Hallo,
ich meine zum einen das Paketzentrum in dem man ja auch das Paket manuell starten/stoppen kann, was aber nicht funktioniert. Zudem habe ich eine Aufgabe angelegt die auch das Startskript ausführen soll aber das funktioniert auch nicht.
Ja ich denke auch das mindestens das Paketzentrum das Startskript nicht findet. Aber zumindest die Aufgabe sollte doch ausgeführt werden, es wird hier aber auch keine eMail an meine Adresse verschickt und auch keine Fehler angezeigt oder ausgegeben.
Gruß
Thomas