systemd 스크립트에 의해 종료된 Ubuntu Server 16.04를 구출하는 방법은 무엇입니까?

systemd 스크립트에 의해 종료된 Ubuntu Server 16.04를 구출하는 방법은 무엇입니까?

버튼을 누를 때마다 Raspberry Pi 3b(Ubuntu Server 16.04)를 자동으로 종료하는 프로그램을 작성했습니다. Pi의 GPIO 핀을 매초 읽고 버튼을 누르면 장치를 종료하는 작은 bash 스크립트에 지나지 않습니다.

그런데 제가 실수를 해서 조건이 항상 참이었는데, 이는 프로그램이 시작되자마자 Pi가 종료된다는 뜻이었습니다. 믿을 수 없을 정도로 어리석은 행동으로 프로그램을 systemd('After=multi-user.target')에 연결했습니다. 의미: Pi가 부팅을 마치면 다시 자동으로 종료됩니다. 이 과정을 중단할 가능성은 전혀 없습니다. 특정 "systemd" 프로세스를 억제하는 방식으로 "/boot/config.txt"를 편집하는 방법이 있습니까? 이 시스템을 수정하는 방법에 대한 다른 아이디어가 있나요? 내 Mac에는 부팅 파티션만 보이고 Linux 컴퓨터에는 SD 카드 슬롯이 없습니다.

추신: 처음에 이 이미지 중 하나를 SD 카드에 플래시했습니다.https://ubuntu-pi-flavour-maker.org/download/"dd"를 사용하세요. PS2: "poweroff"로 인해 종료가 시작됨

답변1

systemd 를 사용한 초기화 systemd.unit=rescue.targetemergency.target./boot/cmdline.txt

어떤 이유로 이것이 작동하지 않거나 시스템화되지 않은 시스템에서 init=/bin/sh행의 끝에 추가하면 시스템이 init와 관련된 모든 것을 완전히 우회하게 됩니다.

수정하려면 파일 시스템을 읽기-쓰기로 마운트해야 할 수도 있습니다. rw부팅 명령줄에 추가하거나 부팅 시 명령을 실행하여 mount -o remount,rw /이를 수행 할 수 있습니다 .

답변2

systemd는 커널 매개변수를 스캔합니다. 예를 들어 비활성화 cron.service부트로더에 추가:

systemd.mask=cron.service 

config.txt에 대한 액세스 권한이 있는 경우 이를 cmdline.txt로 수정해야 합니다.

원천:

https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md

원천: https://www.freedesktop.org/software/systemd/man/kernel-command-line.html

관련 정보