Python脚本在启动时运行,然后在结束时重新启动-如何重新获得控制权?

Python脚本在启动时运行,然后在结束时重新启动-如何重新获得控制权?,python,python-3.x,raspberry-pi,raspberry-pi3,Python,Python 3.x,Raspberry Pi,Raspberry Pi3,我犯了一个可怕的错误,正在寻求你的帮助 我已经设置了raspberry pi,通过编辑rc.local文件在启动时运行python脚本。这很好,除非我已经编写了脚本,在raspberry pi退出时重新启动它。现在我陷入了一个无限循环,我不能编辑任何东西。每次脚本结束时,它都会重新启动pi并再次启动 我的程序使用Pygame作为GUI,我有一个运行NOOBS操作系统的Raspberry Pi 3。如果您需要更多信息,请询问 任何帮助停止我的脚本,使我可以访问pi而不丢失任何数据将不胜感激 编辑-

我犯了一个可怕的错误,正在寻求你的帮助

我已经设置了raspberry pi,通过编辑rc.local文件在启动时运行python脚本。这很好,除非我已经编写了脚本,在raspberry pi退出时重新启动它。现在我陷入了一个无限循环,我不能编辑任何东西。每次脚本结束时,它都会重新启动pi并再次启动

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

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


编辑-多么神奇的社区。谢谢大家分享你的知识和时间。我有点慌乱,你们都很快就来帮助我。如果你读这篇文章是因为你正处于类似的困境,我发现本的答案是最快、最简单的解决方案,但如果这对你不起作用,我认为下一步应该尝试FrostedCookies的想法

我先把它关掉,然后再打开

如果没用的话

  • ps aux | grep-i python
  • killall-python-您可能需要使用python脚本名或“python”之外的名称来调整killall命令

最简单的方法可能是从Pi中取出SD卡,将SD文件系统安装到另一台运行linux的计算机上,然后从那里编辑rc.local脚本以删除无限引导循环。您也可以通过这种方式备份数据,以防出现问题。

我不确定这是否有效(我现在没有Pi),但如果在脚本运行时无法正常访问终端,请尝试键盘快捷键Ctrl+Alt+F1打开一个,然后键入
sudo pkill python
以终止脚本(这也将杀死机器上的任何其他python进程)。然后使用终端文本编辑器(
vi
nano
)编辑
rc.local
文件以避免再次发生这种情况。

这是一个Raspberry Pi解决方案,而不是Python/unix解决方案,但您可以将SD卡插入另一台计算机,装载它,并修改脚本以停止重新启动周期


有关在另一台计算机上编辑Pi SD卡文件的更多信息,请点击此处:

作为从未使用过Raspberry Pi的用户,听起来您可以通过断开电源来停止它。我不知道这是否会保留您想要访问的数据。重新启动间隔多长时间?将SD卡连接到您的电脑和编辑
rc.local
谢谢用户2357112。非常感谢您的帮助。断开电源确实会使其停止,但只要我重新插入电源,它就会启动。@cdarke在pygame窗口打开(全屏模式)之前,我实际上看到了大约2秒钟的提示但它的长度不足以输入超过6个字符。我能想象的唯一问题是,他陷入了无限的启动循环中,所以在运行和重新启动rc.local之前,他如何有时间打开控制台并输入kill命令?这取决于脚本的作用,但可能会使事情变得复杂:-)无论如何,如果不可能,关闭它并从其他设备访问代码会有所帮助。谢谢FrostedCookies。这听起来好像能解决问题。希望我可以在windows PC上编辑rc.local文件。不幸的是,我目前没有SD卡到USB适配器,所以这可能是我下班回家休息一下,明天再试的提示。嘿,瑞德,我认为NOOBs文件系统使用linux文件系统格式(ext4),所以windows可能无法安装它。有几个选项,您可以使用可引导闪存或live发行版在PC上引导临时linux发行版,也可以在windows上安装linux虚拟机来装载它。随时通知我们!谢谢你,弗罗斯特。我不确定我是否理解NOOBs这个词,但我真的很感谢你花时间帮助我,并一定会让你了解情况。谢谢你的宝贵意见,本,我想我们的想法正在取得进展。按Ctrl+Alt+F1向我显示了与您所说的一样的终端,键入sudo pkill python停止Pygame在后台运行。现在唯一的问题是,在输入指令后,键盘没有反应。嘿,本,你做到了!非常感谢你,我不得不稍微调整一下你的想法,而不是键入“sudo pkill python”,我只是键入了“sudo nano/etc/rc.local”并编辑了文件。都修好了。再次感谢您的帮助。很高兴能帮助,@RedPython!