2013-06-21 12 views
5

私はブート時にプログラムを実行する方法を理解しようとしていましたが、このプログラムが無限ループであることを知った後、私がPiパワーを与えると、それは黒い背景のプログラムにちょうど向かいます。私はブート時に実行するために何をしたのか正確に覚えていない、私はちょうど "出口0"と "エサック"と言う何かの下に何かのすぐ上の場所にいくつかのコードを追加したと思う。私はそこに私を連れてくる命令を覚えていない。 (私はPiとPythonの初心者です)。ブート時にプログラムを実行しているラズベリーパイを停止する

誰かがこのプログラムを削除したり編集できるように助けてくれたら、無限ループを修正することができます素晴らしいことだ。私はむしろ新鮮なラズビアンでSDカードを完全に書き換える必要はありません。しかし、私はブート時に何もできないと言ったように、Ctrl + Cは何もしませんし、Ctrl + Alt + Deleteもしません。

編集:私は私のコンピュータにSDカードを入れたとき、私は11個のファイルのリストを参照してください。 ブートコード CMDLINE 設定 フィックスアップ fixup_cd 問題 カーネル kernel_cutdown kernel_emergency start.elf start_cd.elf

これらのどれもが私には何の意味もない...

+2

SDカードをコンピュータに挿入して、プログラムを削除します。 – ctn

+0

これはPythonと何が関係があるのか​​分かりません。これはLinuxの設定上の問題です。 –

+0

@DanielRoseman pythonタグを削除しました – hek2mgl

答えて

11

更新:ルーあなたが実行中のブートプロセスを中断してスクリプトを停止させたいということに失敗したようなks。

最も簡単な考え方は、piの電源を切ってsdカードを抜いてデスクトップに接続し、(再)スクリプトを移動してもう一度起動することです。


中に生成されたプロセスは、/etc/init.d/...のスクリプトに格納されます。これらのスクリプトは、Linuxマシン(PID:1)の最初のプロセスであるinitプロセスによって呼び出されます。

しかし、initはすべてのスクリプトを/etc/init.dに開始しません。これは実行レベルによって異なります。

/etc/rc0.d 
... 
/rc6.d 

たに格納されている/etc/init.dのからスクリプトへのソフトリンクは次のとおりです。Debianのシステム上のすべての実行レベルについては7 run levels.

は次のように呼ばれるフォルダがありますがあります。

すべての起動時にスクリプトが実行されないようにするには、そのフォルダからすべてのリンクを削除します。通常のDebianシステムでは、これはupdate-rc.dツールを使用して行われます:あなたはまた、ファイル/etc/rc.local

+1

しかし、私はターミナルウィンドウにアクセスできません。私はそれに電源を与えると、無限に白いテキストの黒い画面が表示され、私はそれを終了することはできません。 – user2506445

+0

あなたは本文を読むことができますか? – hek2mgl

+0

私は@ user2506445に同意します - 通常どおりCTRL-Cが動作しないので、実行中のプログラムをどのように停止しますか? また、これはPythonとは関係ないと言った2人の人がいます - もしPythonプログラムであれば、pythonプログラムの実行を停止する方法を探していました...確かにpythonとは確かですそれもLinuxのことです - 確かに2つのタグを持つことができますか?) –

4

あなたはcmdline.txtを使用することができますを見ている必要があり

update-rc.d NAME_OF_INIT_SCRIPT remove 

。 まず、sdカードのcmdline.txtファイルを追加または変更します。 "init =/bin/sh"を追加してPiを再起動すると、コマンドラインプロンプトが表示されます。 'sudo nano /etc/rc.local'と入力してファイルを編集し、エラーのある行をコメントまたは削除します。その後、再起動します。

1

私はまったく同じ問題を抱えていましたが、CTRL + Cを使用してプロセスを終了できませんでした。私は上記のようにcmdline.txtを編集しましたが、piはキーボードに必要なUSBドライバをロードしませんでした。

最終的に私はpiにSSHでログインし、自分のrc.localファイルをそのように変更しました。

0

私はこの投稿の冒頭で説明したのと同じ問題がありました。私のPythonアプリケーションは無限ループに巻き込まれました。

任意のターミナルウィンドウが開いていることなく、インターネットで見られる多くの記事で推奨されているように私はCtrlキー+Altキー + F2コマンドを試してみました。どうやら、他の多くの試用と再起動の後、私のアプリケーションのループが再開するたびに、ターミナルウィンドウが垣間見られました。私が携帯電話のスローモーションビデオを使って画面を録画するまで、何かをキャッチすることは不可能でした。はい、Linuxプロンプトが表示された端末ウィンドウがアクティブで、キーボード入力を受け入れることができました。

私がしたすべては

sudo nano filename command 

と犯人ファイルを編集し、パイを再起動し、それを保存して閉じ、実際に破損しているようなファイルするために一部の文字を入力する(ほとんど盲目的)でした。 ブートの最後に、ファイルにエラーが発生しましたが、システムは動作可能な状態を保っていました。

これで、通常の方法でバグを修正することができました。 これは他人にとって役に立ちそうです。私の場合、それは新しいラスベスを燃やし、私の以前の仕事をすべて失ってしまいました。 + PrintScn + K

0

私は自分自身がまったく同じ問題に捕まってしまったから、実行中のスタックプロセスを殺すために。幸いにも私はsshを有効にしました。明らかに、これはRaspbian Jessieのデフォルトでは無効になっています。

終了0は、現在、連続モードで実行されているスクリプトで追加した/etc/rc.localの行です。あなたはパテを使用してPiとPiの者のIPアドレスにsshをすることができます場合は、

sudo nano /etc/rc.local 

これを防ぐために、その後sudoをリブート

スクロールし、ファイルの一番下にダウンし、問題のプログラムを削除するには、彼らの方法起こってからの問題は、プロセスをフォークし、で指定されたように

python /home/pi/myscript.py & 

ような別のプロセスとして実行する行の末尾に&(アンパサンド)を追加することです10

アンパサンドでは、コマンドを別のプロセスで実行し、プロセスを実行しながら起動を続けることができます。

関連する問題