EZL70 systemd
Re: EZL70 systemd
Controlla nel log di sistema che errore ti dà all'avvio del servizio, oppure prova ad avviare a mano il servizio e vedi l'errore.
Questo potrebbe aiutare a capire quale è il problema.
Questo potrebbe aiutare a capire quale è il problema.
Re: EZL70 systemd
Credo di aver capito quale potrebbe essere il problema.
Nel service è necessario anche specificare l'interprete di python.
La corretta riga di avvio del service dovrebbe essere:
A me con un'altro script python, il service scritto in questo modo funziona.
Nel service è necessario anche specificare l'interprete di python.
La corretta riga di avvio del service dovrebbe essere:
Codice: Seleziona tutto
ExecStart=/usr/bin/python /var/www/MyScripts/EZL.sh
A me con un'altro script python, il service scritto in questo modo funziona.
Re: EZL70 systemd
apr 30 19:29:16 raspberry systemd[1]: Starting 123Solar...
apr 30 19:29:17 raspberry python[1408]: File "/usr/bin/EZL", line 3
apr 30 19:29:17 raspberry python[1408]: while true; do socat pty,link=/dev/ttyEZL0,raw,echo=0,waitslave tcp
apr 30 19:29:17 raspberry python[1408]: ^
apr 30 19:29:17 raspberry python[1408]: SyntaxError: invalid syntax
apr 30 19:29:17 raspberry systemd[1]: 123solar.service: Main process exited, code=exited, status=1/FAILURE
apr 30 19:29:17 raspberry systemd[1]: Failed to start 123Solar.
apr 30 19:29:17 raspberry systemd[1]: 123solar.service: Unit entered failed state.
apr 30 19:29:17 raspberry systemd[1]: 123solar.service: Failed with result 'exit-code'.
Nemmeno a dirlo se lancio manualmente EZL tutto funziona ancora
apr 30 19:29:17 raspberry python[1408]: File "/usr/bin/EZL", line 3
apr 30 19:29:17 raspberry python[1408]: while true; do socat pty,link=/dev/ttyEZL0,raw,echo=0,waitslave tcp
apr 30 19:29:17 raspberry python[1408]: ^
apr 30 19:29:17 raspberry python[1408]: SyntaxError: invalid syntax
apr 30 19:29:17 raspberry systemd[1]: 123solar.service: Main process exited, code=exited, status=1/FAILURE
apr 30 19:29:17 raspberry systemd[1]: Failed to start 123Solar.
apr 30 19:29:17 raspberry systemd[1]: 123solar.service: Unit entered failed state.
apr 30 19:29:17 raspberry systemd[1]: 123solar.service: Failed with result 'exit-code'.
Nemmeno a dirlo se lancio manualmente EZL tutto funziona ancora
Codice: Seleziona tutto
[Unit]
Description=123Solar
Requires=network.target
After=network.target apache2.service php-fpm.service
[Service]
Type=oneshot
ExecStart=/usr/bin/python /usr/bin/EZL
ExecStart=/bin/sleep 10
ExecStart=/usr/bin/curl http://localhost/123solar/scripts/boot123s.php
[Install]
WantedBy=default.target
Re: EZL70 systemd
Come vedi ti segnala un errore di sintassi in questa riga dello script EZL:
A me aveva dato problemi eseguire dei servizi con la & finale nei comandi
Un servizio e demone, viene già eseguito in background e pertanto credo che mettere la & finale crei dei problemi.
Codice: Seleziona tutto
while true; do socat pty,link=/dev/ttyEZL0,raw,echo=0,waitslave tcp:192.168.x.x:1470; done &
A me aveva dato problemi eseguire dei servizi con la & finale nei comandi
Un servizio e demone, viene già eseguito in background e pertanto credo che mettere la & finale crei dei problemi.
Re: EZL70 systemd
Già tolta anche la & ma stesso risultato.
Alla fine ho risolto... aggirando l' ostaolo. Ho messo come nelle vecchie versione in rc.local, ed abilitato tramite systemd... e tutto funziona
Alla fine ho risolto... aggirando l' ostaolo. Ho messo come nelle vecchie versione in rc.local, ed abilitato tramite systemd... e tutto funziona
Re: EZL70 systemd
OK.
Tanto per avere delle info complete puoi riportare nel dettaglio come hai fatto ed i contenuti corretti degli script in modo che resti traccia per chi volesse fare la stessa cosa?
Grazie
Tanto per avere delle info complete puoi riportare nel dettaglio come hai fatto ed i contenuti corretti degli script in modo che resti traccia per chi volesse fare la stessa cosa?
Grazie

Re: EZL70 systemd
Certamente, allora ho seguito la guida fino a creare rc.local in /etc . Poi ho abilitato il lancio dell'rc.local tramite systemd
se può esser utile stasera posto anche il contenuto di rc.local
Codice: Seleziona tutto
systemctl unmask systemd-rc.local
se può esser utile stasera posto anche il contenuto di rc.local
Re: EZL70 systemd
Salve sono possessore di una interfaccia rs485 ethernet CSEH55N2 della Sollae Systems
La mia confgigurazione è questa:
il file rc.local è il seguente:
Ho poi creato il service, sudo nano /etc/systemd/system/rc-local.service con il seguente codice:
Il file poi deve essere eseguibile dando il seguente comando:
Infine ho attivato il service con il seguente comando:
Rivviare il raspberry
Per controllare lo stato digitare il seguente comando :
Questo è tutto, spero possa essere di aiuto.
La mia confgigurazione è questa:
il file rc.local è il seguente:
Codice: Seleziona tutto
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
sudo /var/www/MyScripts/EZL.sh
exit 0
Ho poi creato il service, sudo nano /etc/systemd/system/rc-local.service con il seguente codice:
Codice: Seleziona tutto
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Il file poi deve essere eseguibile dando il seguente comando:
Codice: Seleziona tutto
sudo chmod +x /etc/rc.local
Infine ho attivato il service con il seguente comando:
Codice: Seleziona tutto
sudo systemctl enable rc-local
Rivviare il raspberry
Per controllare lo stato digitare il seguente comando :
Codice: Seleziona tutto
sudo systemctl status rc-local.service
Questo è tutto, spero possa essere di aiuto.
Re: EZL70 systemd
A me il service funziona.
Questo è il contenuto del file EZL.sh come di seguito (contiene anche le istruzioni d'uso):
Permessi e proprietario del file EZL.sh sono 755 e pi-pi
Ovviamente va modificato l'indirizzo IP 192.168.1.99 con l'IP del vostro adattatore LAN-RS485
Questo è il contenuto del file /etc/systemd/system/EZL.service:
Permessi e proprietario del file EZL.service sono 644 e root-root
Nella nuova immagine SolarStretch che stò per pubblicare ho già inserito anche questo servizio.

Questo è il contenuto del file EZL.sh come di seguito (contiene anche le istruzioni d'uso):
Codice: Seleziona tutto
#!/bin/bash
# Utilizzo di convertitore RS485-LAN tipo EZL70 o altri in sostituzione del convertitore RS485-USB
#
# /var/www/MyScripts/EZL.sh
#
# Prerequisti:
# - installare socat con:
# apt-get update
# apt-get install socat
#
# Creare il symlink con:
# ln -s /var/www/MyScripts/EZL.sh /usr/bin/EZL
#
# Per abilitare il servizio:
# sudo systemctl enable EZL.service
# reboot
#
# Per disabilitare il servizio:
# sudo systemctl disable EZL.service
# reboot
#
# Il servizio crea la porta ttyEZL0 da utilizzare in MeterN o/e 123Solar
#
# Impostare nella riga seguente l'indirizzo IP e la porta del proprio adattatore
while true; do socat pty,link=/dev/ttyEZL0,raw,echo=0,waitslave tcp:192.168.1.99:1470; done
exit
Permessi e proprietario del file EZL.sh sono 755 e pi-pi
Ovviamente va modificato l'indirizzo IP 192.168.1.99 con l'IP del vostro adattatore LAN-RS485
Questo è il contenuto del file /etc/systemd/system/EZL.service:
Codice: Seleziona tutto
[Unit]
Description=EZL
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/EZL
[Install]
WantedBy=multi-user.target
Permessi e proprietario del file EZL.service sono 644 e root-root
Nella nuova immagine SolarStretch che stò per pubblicare ho già inserito anche questo servizio.

Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite