Ich habe ein Programm geschrieben, das einen Raspberry Pi 3b (Ubuntu Server 16.04) automatisch herunterfährt, sobald eine Taste gedrückt wird. Es ist nichts als ein kleines Bash-Skript, das jede Sekunde einen GPIO-Pin des Pi ausliest und das Gerät herunterfährt, wenn der Knopf gedrückt wird.
Allerdings habe ich mich vertan und die Bedingung ist immer wahr, was bedeutet, dass das Programm den Pi herunterfährt, sobald es gestartet wird. Aus unglaublicher Dummheit habe ich dieses Programm bereits mit systemd (‚After=multi-user.target‘) verknüpft. Bedeutet:Sobald der Pi fertig gebootet hat, fährt er sich wieder herunter. Ich sehe keine Möglichkeit, diesen Prozess zu unterbrechen. Gibt es eine Möglichkeit, die ‚/boot/config.txt‘ so zu bearbeiten, dass bestimmte ‚systemd‘-Prozesse unterdrückt werden? Irgendeine andere Idee, wie ich dieses System beheben könnte? Auf meinem Mac sehe ich nur die Boot-Partition und mein Linux-Computer hat keinen SD-Kartensteckplatz.
P.S.:Ich habe am Anfang eines dieser Images auf die SD-Karte geflasht https://ubuntu-pi-flavour-maker.org/download/ mit 'dd'.
P.S.2:Herunterfahren wird durch 'poweroff' initialisiert
Akzeptierte Antwort:
Mit systemd for init kann das Rettungsziel von systemd erreicht werden, indem systemd.unit=rescue.target
angehängt wird (oder emergency.target
falls dies fehlschlägt) in die Boot-Befehlszeile in /boot/cmdline.txt
.
Wenn dies aus irgendeinem Grund oder auf einem Nicht-Systemd-System nicht funktioniert, fügen Sie stattdessen init=/bin/sh
hinzu bis zum Ende der Zeile, was dazu führt, dass das System alles, was mit init zu tun hat, vollständig umgeht.
Möglicherweise müssen Sie das Dateisystem mit Lese-/Schreibzugriff einhängen, um Änderungen vornehmen zu können. Sie können dies tun, indem Sie rw
anhängen in die Boot-Befehlszeile oder geben Sie mount -o remount,rw /
ein beim Booten.