
ボタンを押すたびに、Raspberry Pi 3b(Ubuntu Server 16.04)を自動的に終了するプログラムを作成しました。 PiのGPIOピンを毎秒読んでボタンを押すと、デバイスを終了する小さなbashスクリプトに過ぎません。
しかし、私が間違いを犯して条件が常に真でした。信じられないほど愚かな行動でプログラムを systemd('After=multi-user.target') にリンクしました。意味:Piが起動を完了すると、自動的に終了します。このプロセスを中断する可能性はまったくありません。特定の "systemd"プロセスを抑制する方法で "/boot/config.txt"を編集する方法はありますか?このシステムを修正する方法についての他のアイデアがありますか?私のMacにはブートパーティションのみが表示され、LinuxコンピュータにはSDカードスロットはありません。
PS:最初にこの画像の1つをSDカードにフラッシュしました。https://ubuntu-pi-flavour-maker.org/download/「dd」を使用してください。 PS2:「poweroff」のためシャットダウンが始まった
答え1
systemd を使った初期化 systemd.unit=rescue.target
はemergency.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