5/12/2019

Apache start niet na update opensuse

Filed under: — cybrarian @ 2:44 pm

Updates rodn begin december veroorzaakten waarschijnlijk een probleem waardoor de webserver niet meer start bij OpenSUSE Leap 15.1 server met Apache, mysql (mariadb), postgresql, php, …

systemctl apache2 start

systemctl apache2 status

achel:/home/wim/bin # systemctl status apache2
● apache2.service – The Apache Webserver
Loaded: loaded (/usr/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2019-12-10 16:14:50 CET; 20h ago
Process: 1982 ExecStart=/usr/sbin/start_apache2 -DSYSTEMD -DFOREGROUND -k start (code=exited, status=1/FAILURE)
Main PID: 1982 (code=exited, status=1/FAILURE)

dec 10 16:14:50 achel systemd[1]: Starting The Apache Webserver…
dec 10 16:14:50 achel start_apache2[1982]: httpd-prefork: Syntax error on line 210 of /etc/apache2/httpd.conf: Syntax error on line 119 of /etc/apache2/default-server.conf: Syntax error on line 1 of /etc/apache2/conf.d/pgadmin4.conf: Cannot load modules/mod_wsgi.so into>
dec 10 16:14:50 achel systemd[1]: apache2.service: Main process exited, code=exited, status=1/FAILURE
dec 10 16:14:50 achel systemd[1]: Failed to start The Apache Webserver.
dec 10 16:14:50 achel systemd[1]: apache2.service: Unit entered failed state.
dec 10 16:14:50 achel systemd[1]: apache2.service: Failed with result ‘exit-code’.

mod_wsgi dient voor python web applicaties.
Die is blijkbaar niet aanwezig. Bij-geïnstalleerd via Yast.

apache2-mod_wsgi – A WSGI interface for Python web applications in Apache

The mod_wsgi adapter is an Apacheache module that provides a WSGI compliant interface for hosting Python based web applications within Apache. The adapter is written completely in C code against the Apache C runtime and for hosting WSGI applications within Apache has a lower overhead than using existing WSGI adapters for mod_python or CGI.

Installed Packages: 1
apache2-mod_wsgi
Statistics
Elapsed Time: 00:02
Total Installed Size: 461,4 KiB
Total Downloaded Size: 155,8 KiB

Sorry, hier stopt het al, dat was de beschrijving van het probleem en ook de oplossing.

3/12/2019

Raspberry Pi starten zonder scherm of toetsenbord

Filed under: — cybrarian @ 2:35 pm

Raspberry Pi als toepassing
(Raspbian)
Je kan de Raspberry Pi ergens inbouwen en van een toepassing voorzien.
Als hij opstart wil je 2 dingen:

– dat je hem vanop afstand kan bereiken (inloggen, besturen, upgraden)
– dat hij de juiste toepassingen start (of de verkeerde/onnodig niet)

1. Afstandsbediening

1.1 Verbinding

Je moet zorgen dat je raspberry pi te bereiken is via het netwerk als je hem laat starten. Om hem te kunnen aanspreken moet je weten welk ip adres hij heeft. Zet het bv vast in /etc/dhcpcd.conf

interface eth0

static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

interface wlan0

static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

1.2 SSH
Het protocol om vanop afstand in te loggen is ssh
Bij de instellingen (Raspbian: Voorkeuren, Raspberry pi configuratie programma)
– zet je SSH aan.
Als je al het nodige geïnstalleerd en getest hebt waarvoor je de desktop nodig hebt:
– zet je opstarten naar buroblad om naar CLI (command line interface)
ps: terug kan ook door sudo raspi-config te gebruiken.


2. Toepassing starten.

Er zijn 2 mogelijkheden:
1) je wil dat bij het opstarten een functie gestart wordt.
2) je wil dat na het starten op bepaalde momenten bepaalde functies lopen (programma’s gestart worden)

2.1 Shell script
In ieder geval is het handig om een shell script te schrijven van waaruit je de python toepassing start.
Stel dat het StartMyApp.sh heet en dat je daarin je eigenlijke programma start:

sudo python myapp.py

Algemeen ga je daarin de directory wijzigen naar waar het script moet draaien, en het script aanroepen met python interpretor

cd /home/pi/myapp
sudo python myapp.py

Het script uitvoerbaar maken
chmod 755 StartMyApp.sh

test met
sh StartMyApp.sh

Als je vanop afstand inlogt, kan je het script starten om het uit te proberen. Maar als je je terminal sluit wordt de verbinding verbroken en de uitvoering stopt. Om na het starten los te koppelen eindigen met een ampersand (en-teken &)

Hier bij het rechtstreeks testen van het programma (maar kan dus ook met je script)
sudo python myapp.py &

Je command prompt komt dan terug vrij, maar je blijft de meldingen krijgen. Wil je die kwijt, stuur ze naar het zwarte gat /dev/null:

sudo python myapp.py > /dev/null &

2.2. Script starten bij het opstarten van de Raspberry pi

Opnemen in opstart:

Het gemakkelijkste is het op te nemen in de crontab. Dat is een soort timer die allerlei taken kan inplannen op bepaade dagen, uren enz. Een speciaal geval van de crontab is de at reboot taak. Daar kan je hem inzetten met
crontab -e
en bekijken wat erin staat met
crontab -l

of voor root:
sudo crontab -e

De lijn die je moet toevoegen is bv
@reboot sh /home/bin/StartMyApp.sh >/home/pi/log/StartAppLog.txt 2>&1
De uitvoer wordt naar een logbestand gestuurd.

Als je wil controleren of het programma draait moet je vanop afstand in loggen met ssh en in de processen zoeken naar de combinatie van (in mijn geval):
cron sh sudo python

Tip: Uitslapen
Ik had wel eens een probleem dat mijn programma niet mooi opstartte (het moest in het begin een mail sturen om zijn start te melden – die kwam niet).
Bij het checken van de foutmeldingen kwam ik op het idee om een beetje vertraging in te bouwen, om de raspberry pi de tijd te geven om zijn ip adres in te stellen en zijn tijd af te halen.
In het begin van mijn StartMyApp.sh script geef ik twee minuutjes extra tijd alvorens de rest uit te voeren:
sleep 120s

2.3 Service
Je kan ook een service maken van je script, dan kan je het bedienen zoals andere diensten op je systeem.
Je moet dan wel de nodige informatie verschaffen aan het systeem over je “service”
update-rc.d StartMyApp.sh defaults
(niet met sudo)
Authentication complete…
(zie https://www.raspberrypi.org/forums/viewtopic.php?t=70520 )

2. Een script starten op bepaalde tijdstippen
(tip: cron)
In de cron kan je ook een script laten uitvoeren op bepaalde tijdstippen, dan hoeft het niet continue te draaien.

Bronnen:
https://www.instructables.com/id/Raspberry-Pi-Launch-Python-script-on-startup/
https://www.raspberrypi.org/forums/viewtopic.php?t=70520

Raspberry Pi stroomvoorziening met Strompi 2

Filed under: — cybrarian @ 2:24 pm

Strompi 2
Dit opsteekbord van joy-it voor de Raspberry Pi (tot v3 B) kost rond 30 euro. Er zijn andere vergelijkbare bordjes verkrijgbaar, en van dit bestaat ook een nieuwere versie 3.

Het maakt 2 scenario’s mogelijk:

1. Batterij backup
– normale voeding + batterij aan schroefaansluiting.
– instellen in USV stand
– propere shutdown bij stroomuitval (driver?).
– bij herneming van de stroom wordt opstartfunctie aktief (kan uitgeschakeld worden door bruggetje te verwijderen bij T pin)

2. Alternatieve stroombron
– kan gevoed worden met een breed scala aan gelijkstroom voedingen, van 6 tot 61 volt. Je kan dus een voeding van een defect apparaat recupereren of de stroombron dynamo/generator van een voertuig gebruiken.
– kan in een mobiele stand gezet worden om steeds een mobiele batterij/stroombron te gebruiken (dan wordt dit de primaire)
– kan meer stroom leveren aan de rapsberry pi als die andere stroomvretende uitbreidingen moet voeden.

Powered by WordPress