2013-06-21 195 views
5

我试图弄清楚如何在启动时运行程序,但是在意识到这个程序是一个无限循环后,我没有办法出去或回到终端。正确的时候,我给了Pi的权力,它只是正确的黑色背景上的程序。我不记得我做了什么来使它在启动时运行,我相信我只是在上面提到“exit 0”的地方以及低于“esac”的地方添加了一些代码。我不记得甚至把我带到那里的命令。 (我是Pi和Python的新手,刚刚一直在玩... ..)停止Raspberry Pi在启动时运行程序

如果任何人都可以帮我删除这个程序或让我能够编辑它,所以我可以修复无限循环会很好。我宁愿不必用新的raspbian完全覆盖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/...的脚本中。这些脚本由init进程调用,这是Linux机器上的第一个进程(PID:1)

但init并不是启动/etc/init.d中的所有脚本。这取决于运行级别。在Debian系统中有7 run levels.

对于每一个运行级别有一个名为像文件夹:

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

中是软链接从/etc/init.d下脚本存储。

要删除每次启动时执行的脚本,您将删除该文件夹中的所有链接。通常在Debian系统中,这是使用update-rc.d工具来完成:

update-rc.d NAME_OF_INIT_SCRIPT remove 

你也应该看看文件/etc/rc.local

+1

但我无法进入终端窗口。正确的时候,我给它的权力,它显示了一个白色的文字无限的黑色屏幕,我不能退出它。 – user2506445

+0

你可以阅读文字吗? – hek2mgl

+0

我同意@ user2506445 - 你如何停止正在运行的程序,因为通常的CTRL-C不起作用。 另外两个人评论上面说这与python无关 - err,如果它是一个python程序,并且你正在寻找如何停止python程序运行...肯定它确实与python(是的,我知道这也是一个Linux的东西 - 当然它可以有2个标签?) –

4

可以使用的Cmdline.txt。 首先,添加或修改SD卡上的cmdline.txt文件。添加“init =/bin/sh”,然后重新启动你的Pi,你可以看到一个命令行提示符。 键入'sudo nano /etc/rc.local'来编辑文件,并注释或删除包含错误的行。之后重新启动。

1

我有完全相同的问题,无法退出使用CTRL + C的过程。我编辑了如上所述的cmdline.txt,但是然后pi没有为我的键盘加载必要的usb驱动程序。

因此,最终我通过SSH登录到pi,并修改了我的rc.local文件。

0

我遇到了与本文开头部分所述相同的问题。我的Python应用程序陷入了无限循环。

我试过按Ctrl + Alt键+ F2 命令如在网上发现没有任何终端窗口是否打开很多职位推荐。显然,经过许多其他试验和重新启动后,每当我的应用程序循环重新启动时,我都会看到一个终端窗口。直到我开始使用手机的慢动作视频录制屏幕,并且在Linux提示符处于活动状态并且能够接受键盘输入的终端窗口时,才能捕捉到任何内容。

我所做的(几乎是盲目地)编辑的罪魁祸首文件与

sudo nano filename command 

,并以实际损坏的这样的文件输入一些字符,保存并关闭它,一个重启皮。 在引导结束时,该文件产生了一个错误,但系统已准备好运行。

我当时能够以正常的方式修复这个错误。它希望这可能对其他人有用。在我的情况下,它让我无法燃烧一个新的Raspbian并失去了我之前的所有工作。

1

Alt + PrintScn + K杀卡的过程中,从rc.local的

0

我给自己买了卡在完全相同的问题上运行。幸运的是我启用了ssh,显然这在Raspbian Jessie中是默认禁用的,所以这可能不适用于所有人。

exit 0是/etc/rc.local中的行,您可以在现在以连续模式运行的脚本中添加该行。如果你能ssh到使用腻子Pi和郫县的IP地址,然后

sudo nano /etc/rc.local 

向下滚动到文件的底部,并删除有问题的程序,然后须藤重启

他们的方式来防止这种情况的发生的问题是增加一个&(符号)到行的结尾叉过程并运行它作为一个单独的过程,像这样

python /home/pi/myscript.py & 

如指定10

&符允许命令在单独的进程中运行,并在进程运行时继续引导。

相关问题