当Pi启动时,有很多技术可以运行脚本,您选择哪种脚本将取决于脚本的功能和期望。在这篇文章中,我’将介绍一种技术,使Pi以Pi用户的身份自动登录并立即执行Python脚本。
与另一种流行方法相比,这具有一个主要优势(请参阅 使用Cron在启动时运行Python脚本),因为在您返回可用的命令行提示符之前,由于终端已启动并且正在运行脚本的文本输出是可见的。
自动登录设置(可选)
第一步是使Pi能够自动登录而无需任何用户干预。此步骤是可选的。
在命令提示符或终端窗口中输入:
sudo raspi-config
followed by 输入.
选择“Boot Options” then “Desktop/CLI” then “Console Autologin”
准备脚本
我的测试脚本叫做“myscript.py”并且位于/ home / pi /。这是其中包含的内容:
#!/usr/bin/python print("******************************************************") print("* This is a test script. There are many like it, *") print("* but this 上 e is mine. My script is my best friend. *") print("* It is my life. I must master it as I must master *") print("* my life. *") print("******************************************************")
您可以使用以下命令将其直接下载到您的Pi:
get //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/myscript.py
我强烈建议您在尝试任何其他脚本之前使此工作正常!
自动运行脚本设置
现在我们需要告诉操作系统为Pi用户运行脚本。在命令提示符或终端窗口中,输入:
sudo nano /etc/profile
滚动到底部并添加以下行:
sudo 蟒蛇 /home/pi/myscript.py
哪里“/home/pi/myscript.py”是脚本的路径。
输入“ Ctrl + X”退出,然后输入“ Y”保存,然后输入“Enter” twice.
无尽的脚本
脚本完成后,您将仅返回命令行。如果您的脚本包含一个无限循环,那么您可能需要在配置文件中使用以下行:
sudo 蟒蛇 /home/pi/myscript.py &
这将允许脚本在后台运行,但是您不会看到任何文本输出。
重新启动并测试
要测试是否有效,请使用以下命令重新启动Pi:
sudo reboot
启动时,您的脚本将运行,您将看到类似以下内容:
由于技术,我们’如果您已经在Pi用户登录时运行了该脚本,这意味着如果您创建其他终端会话(例如通过SSH),则该脚本将每次运行。
故障排除
如果没有’在这里工作是可以尝试的一些事情:
- 手动运行脚本并检查其是否正常运行
- 使用我的示例脚本并检查是否有效
- 仔细检查初始步骤
30条留言
对于运行Python脚本,我总是使用超级用户,可以轻松查看正在发生的情况。 http://supervisord.org/
嗨,我尝试过你的方法’ve以上所述,但是我使用了“while True:”在我的程序中循环。我的Pi在启动过程中被卡在黑屏上,这是因为脚本无法完成吗?请帮我复活
尝试添加一个&在该行的末尾,即:
sudo 蟒蛇 /home/pi/myscript.py &
你好, followed your blog and it resulted in the same black 屏幕 [probably due to 而True:].
您建议添加一个&。但是,如何进入编辑模式并使事情恢复正常?
使用Putty或类似应用通过SSH连接到Pi,您应该能够获得命令行并重新编辑文件。
非常感谢您,这个结果对我来说-
它启动,运行脚本并继续正常运行。
我也一样不再显示。
该技术的成功程度取决于Python脚本的功能以及它退出还是无穷循环。
谢谢马特伟大的教程。
对于陷入黑屏的其他人,这就是我恢复原状的方式。
当pi启动时,脚本仅运行Ctrl + c即可将您带回到命令行,您可以#删除nano文件中添加的行,并删除#,以使文件恢复为原来的样子。
非常感谢您提供此解决方案。我们试图在启动时运行3-4天,以运行Python脚本,但这一切都徒劳。这个解决方案解决了。许多thanx。
感谢您的指导,我的脚本在启动时完美运行!
我在启动时遇到黑屏的相同问题(可能是由于我的while true loop)。我一直尝试在键盘上按Control-C,但这并没有’工作。我的Mac也拒绝通过SSH连接到pi。我还能尝试什么吗?否则,我将重新安装操作系统,没什么大不了的。
此技术仅适用于执行任务然后退出的脚本。如果它们陷入循环中,则可能会停止引导序列的完成。
对于那些面临黑屏问题的人
只是启动馅饼
允许您的脚本同时运行,按ctrl + alt + f1,然后按ctrl + c
系统将提示您使用命令提示符进行更改
你好,
我正在使用Raspberry Pi 3 B型,今天我想在Pi启动后自动运行Python脚本,但是突然,它说:
”-bash:PKG_CONFIG:找不到命令”
而且它无法继续。
期待尽快获得您的帮助。
谢谢,
I’ve之前没有看到该错误。单独运行Python脚本时,是否可以正常运行?
I’ve ruined my Pi 🙁
Ctrl + C不’t work.
Ctrl + Alt + F1键’t work.
SSH没有’t work as I don’t have the IP.
我将需要格式化我的Pi。谨慎行事!
您可以使用IP扫描仪或在路由器设置中获取IP。
这也适用于.js文件吗?一世’m使用树莓派PI 2,并且似乎按照所有步骤操作。在RPI引导后,我最终什么也没运行。您能帮我解决这些问题吗?谢谢!例如,我的文件在test1.js上,位于/ home / pi
如果是Javascript文件,则必须在浏览器中运行。所以这个方法是’不适合。您将需要启动到GUI,运行浏览器,并使其自动加载带有JS文件的HMTL文件。
这种方法有一个主要缺陷。它可能会运行脚本的多个实例。这可能会导致奇怪的问题(例如,如果每个脚本都使用多次写入文件)。我被这个咬了,不能’找出根本原因,直到我发布sudo ps aux | grep -i myscript.py。
I’我仍然在寻找解决方案’t运行python脚本的多个实例。
请在文章中声明您不能将此功能与循环一起使用。你已经毁了几个人’s pi’现在,不是我的。它’甚至不是供个人使用,而是供公司使用。一世’我花了数周的编程时间,现在我’我被锁定。非常感谢。为什么避风港’您在这么多人说过之后指出,如果您使用循环会发生这种情况吗?
I’ve更新了文章,以提及不符合要求的脚本’t退出。重新创建SD卡是使用Pi的全部过程。您自己的编程或许多其他因素可能随时导致数据丢失。开发时,您确实需要定期备份所有工作。
谢谢这对我有帮助。
在这里完成新手培训。如何重置为正常启动功能并撤消对脚本所做的任何更改?
对于这种技术,您只需编辑配置文件并删除添加的运行脚本的行。
删除sudo 蟒蛇 /home/pi/myscript.py后它仍然在经历这个过程& …
是否有万无一失的方式删除脚本‘wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/myscript.py‘
并重置我的Pi正常?
我看到上面很多人都有这个问题–必须有解决方案才能还原
Simply edit the profile file using
sudo nano /etc/profile
and remove the line you added. The downloaded demo script can be deleted like any other file usingrm myscript.py
.解决它。当脚本运行并被空白屏幕锁定时,我执行了以下操作:
– [Ctrl][Shift][F2]
– pi [enter]
–覆盆子[输入](注意:没有字符显示在屏幕上!)
这给了我命令提示符,在这里我可以重新编辑配置文件以删除其他行
–须藤nano / etc / profile
–编辑,删除或散列python脚本(我添加了“&’)
现在备份并运行,吸取了教训。
这次真是万分感谢。这是我画框所需要的。
所有其他告诉我需要进行cronjob的资源对我来说都行不通。
因此,无论谁使用pi3d PictureFrame.py并想在Raspberry 皮零 W上自动启动它… use this method!!
最好
达斯汀
为我工作,谢谢