2017-06-15 95 views
10

我犯了一个可怕的错误,正在寻找你的帮助!Python脚本在启动时运行,然后重新启动 - 如何重新获得控制权?

我已经通过编辑rc.local文件来设置我的树莓派来在启动时运行python脚本。除非我已经编写了我的脚本,以便在退出时重新启动树莓派,这将会很好。现在我陷入了无限循环,我无法编辑任何东西。每当我的脚本结束它重新启动pi,然后重新开始!

我的程序使用Pygame作为GUI,并且我有一个运行随附的NOOBS OS的Raspberry Pi 3。如果您需要更多信息,请询问。

任何帮助停止我的脚本,所以我可以访问pi而不会丢失任何数据将不胜感激。

编辑 -多么惊人的社区。感谢大家分享你的知识和时间。我有点恐慌,你们都很快找到我的帮助。如果您正在阅读本文,是因为您处于类似的困境中,我发现本的答案是最快最简单的解决方案,但如果这对您不起作用,我认为FrostedCookies的想法将成为下一个尝试。

+0

说起谁的人从未使用的树莓派,这听起来像你可以通过断开电源停止。不知道这是否会保留你想访问的数据,我不知道。 – user2357112

+0

重启之间有多长时间? – cdarke

+0

将SD卡连接到您的PC并编辑'rc.local' – DeepSpace

回答

5

我不确定这是否可行(我现在没有Pi),但如果脚本运行时无法正常访问终端,请尝试使用键盘快捷键Ctrl + Alt + F1打开一个,然后输入sudo pkill python来杀死脚本(这也会杀死你机器上的任何其他python进程)。然后使用终端文本编辑器(vinano也许)编辑您的rc.local文件,这样不会再发生。

+0

感谢您的宝贵意见本,我认为我们正在这个想法的某个地方。按Ctrl + Alt + F1显示终端就像你说的那样,然后键入sudo pkill python停止Pygame在后台运行。现在唯一的问题是键入该指令后键盘无响应。 – RedPython

+0

嘿,本,你做到了!非常感谢你,我不得不调整你的想法,而不是输入'sudo pkill python',我只是输入'sudo nano /etc/rc.local'并编辑文件。所有固定。再次感谢你的帮助。 – RedPython

+0

很高兴帮助,@RedPython! – Ben

0

我会首先将其关闭并重新开启..

如果它不会帮助

  • 的ps aux | grep的-i蟒蛇
  • killall蟒蛇 - 你会可能需要调整使用Python脚本名称killall命令代替或补充,以“蟒蛇”
+0

我可以想象的唯一问题是,他陷入了一个无限启动循环,因此,如何在他的rc.local运行并重新启动之前有时间打开控制台并输入kill命令? – FrostedCookies

+0

嗯,这取决于脚本在做什么,但它可能会使事情变得复杂一些:-)无论如何,关闭它并从其他设备访问代码将有所帮助,如果这是不可能的。 – dram

8

也许最简单的方法是从取出SD卡您Pi,将SD文件系统挂载到另一台运行linux的计算机上,并从那里编辑您的rc.local脚本以删除无限启动循环。您也可以备份您的数据,以避免出现问题。

+0

谢谢FrostedCookies。听起来像它会解决问题。希望我可以在Windows PC上编辑rc.local文件。不幸的是,我目前还没有SD卡提供给USB适配器,所以这可能是我下班回家,休息一下,明天再试一次的提示。 – RedPython

+0

嘿红,我认为NOOBs文件系统使用的是linux文件系统格式(ext4),所以windows不可能安装它。有几个选项,您可以使用可启动闪存或实时分发在您的PC上启动临时Linux发行版,也可以在Windows上安装Linux虚拟机以装载它。保持我们的发布! – FrostedCookies

+0

谢谢磨砂。我不确定我在NOOB这个词后面有什么理解,但我真的很感谢你的帮助,并且一定会让你知道。 – RedPython

相关问题