Table des matières

Objectif

Rendre un raspberry inaccessibe tant qu'un GPIO n'est pas mis a la masse

Comment qu'on fait ?

Une grosse recommendation, pendant la bascule, maintenez un acces console, au cas où

PI ce script ne tue pas les session ssh en cours… Attention !!!!

Le Script a activer

#!/usr/bin/env python3
 
import RPi.GPIO as GPIO
import time
import syslog
import os
 
 
Button=XXX
GPIO.setmode(GPIO.BCM)
GPIO.setup(Button, GPIO.IN,pull_up_down=GPIO.PUD_UP)
 
maint=None
 
def changedornot(status):
    global maint
    if status is not maint:
        maint=status
        if maint:
            syslog.syslog(syslog.LOG_INFO, "SSH:on")
            os.system('service ssh start')
        else:
            syslog.syslog(syslog.LOG_INFO, "SSH:off")
            os.system('service ssh stop')
 
 
while True:
    inputValue = GPIO.input(Button)
    changedornot(inputValue == False)
    time.sleep(0.3)

Parametrage systeme

[Unit]
Description=Maintenance Mode On gpio Pin UP
After=network.target auditd.service
 
[Service]
ExecStart=/usr/local/sbin/MaintenanceModeOnPinUp
Restart=always
 
[Install]
WantedBy=multi-user.target
Alias=mmopu.service

Lancement de la chose

systemctl daemon-reload
systemctl start mmopu.service