rc.localから開始された連続プロセスを強制終了する方法は?


3

Raspbian(Debianベース)OSを搭載したRaspberry Piで作業しています。テストのために、次のようなコマンドを追加しました/etc/rc.local

python /home/pi/test.py

このスクリプトを開始すると正常に機能します。しかし、問題は、スクリプト内に無限ループがあることを忘れていたことです。次のようなものです。

while True:
    print 'Hello"
    time.sleep(5)

このループはシステムの起動をブロックするため、スクリプトを編集するためにシステムに入ることはできません。Ctrl + Cは機能しません。だから、私はどのように開始された連続プロセスを殺すのだろうかrc.local

回答:


4

コンソールからプロセスを対話形式で強制終了することはできませんが、起動中に実行を回避する方法は複数あります。

a)シングルユーザーモードで起動する

ブートパーティション(FAT)内のs行にスペースで区切って追加cmdline.txtします。起動後、名前を変更するか/etc/rc.local、実行不可能にする(chmod a-x /etc/rc.local)か、編集することができます。

b)の代わりにシェルで起動します init

init=/bin/shスペースで区切っての行に追加しcmdline.txtます。これにより、ブートスクリプトの起動がバイパスされます。その後/etc/rc.local、上記に対して同じ対策を行うことができます。

c)Linuxパーティションを別のシステムにマウントします

SDカードを別のシステムに入れ、/etc/rc.localそこにパーティションをマウントします。その後/etc/rc.local、上記に対して同じ対策を行うことができます。


0

再起動後に無限に再生する同じ種類のアプリケーションがあります。変更があれば、それを別のシステムにマウントし、変更を加えてボードに戻します。その最も簡単な方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.