我编写了一个程序,只要按下按钮,它就会自动关闭 Raspberry Pi 3b (Ubuntu Server 16.04)。它只不过是一个小型 bash 脚本,每秒读取 Pi 的 GPIO 引脚,并在按下按钮时关闭设备。
然而,我犯了一个错误,条件始终为真,这意味着程序一启动就关闭 Pi。由于令人难以置信的愚蠢,我已经将该程序链接到 systemd ('After=multi-user.target')。意思是:一旦 Pi 完成启动,它就会再次自行关闭。我看不到有任何机会打断这个过程。有没有办法以抑制某些“systemd”进程的方式编辑“/boot/config.txt”?还有其他想法如何修复这个系统吗?在我的 Mac 上,我只看到启动分区,而我的 Linux 计算机没有 SD 卡插槽。
PS:我一开始就将这些图像之一闪存到SD卡上https://ubuntu-pi-flavour-maker.org/download/使用“dd”。 PS2:关机由“poweroff”初始化
答案1
使用 systemd 进行 init,可以通过附加 systemd.unit=rescue.target
(或者emergency.target
如果失败)到/boot/cmdline.txt
.
如果由于某种原因这不起作用,或者在非 systemd 系统上,请添加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