每次 Raspberry Pi 启动时,您都想运行 Python 脚本、应用程序或其他类型的脚本(例如:Bash 脚本)有很多原因。也许你有一个机器人或物联网设备,一旦启动它的树莓派,它就必须准备好执行任务。或者,您可能只想让某个特定程序始终在后台运行,而不希望在每次会话时都手动启动它。
有多种方法可以在 Raspberry Pi 启动时自动启动脚本,但最简单的是使用 crontab,它是一种调度功能,还允许您将脚本设置为在特定时间运行。
如何在 Raspberry Pi 启动时运行脚本
1. 通过键入以下内容编辑您的 crontab 列表:
您可以在不输入 sudo 的情况下启动 crontab,但如果这样做,您将无法运行需要管理员权限的脚本。事实上,如果你不使用 sudo,你会得到一个不同的 crontab 列表,所以不要忘记继续使用它或不使用它。
2. 如果系统提示您要求编辑器,请选择 nano。
一个文件打开。
3. 在文件末尾添加一行,如下所示:
该行必须以 @reboot 开头,它告诉它在每次启动 Raspberry Pi 时运行。如果它是 Python 脚本,您需要输入启动 python 或 python3 解释器的命令,后跟 Python 脚本的完整路径。
如果是 Bash 脚本或其他应用程序,只需输入完整路径即可。
4. 保存并退出。在 nano 中,您可以通过按 CTRL + X、回答 Y 并在出现提示时按 Enter 来实现。
5. 如果您的脚本是 Bash 脚本,则使其可执行。Python 脚本不需要可执行,因为 Python 解释器已经是可执行的。您可以通过键入使任何脚本可执行
如果要从 crontab 中删除脚本,只需再次键入 sudo crontab -e 并删除或注释掉该行。请注意,如果您正在构建一个不需要使用窗口环境的项目,您可以通过输入 sudo raspi-config 然后导航到引导选项来配置 Raspberry Pi 以引导到命令行,从而节省系统资源 – > 桌面/CLI 并选择控制台自动登录。
如何在 Raspberry Pi GUI 中自动运行脚本或应用程序
如果您想让您的脚本或应用程序在 Raspberry Pi 启动时在窗口 GUI 中运行,请按照以下步骤操作。
1. 在 /etc/xdg/autostart/ 目录中创建一个名为 myapp.desktop(或其他 .desktop)的文件。
2. 在 myapp.desktop 文件中使用以下布局。
将命令和任何参数放在 Exec= 行上。例如,要让 Chrome 浏览器打开网页,您需要输入“chromium-browser [URL]”。如果您的应用需要 sudo 权限,您可以将 sudo 放在 Exec 命令中。
要在终端窗口中运行脚本,请使用 lxterminal 后跟 –command 参数和双引号“/bin/bash -c ‘MYCOMMANDS HERE; /bin/bash””。例如,要启动需要 sudo 权限的 python3 脚本,您可以使用:
这将在启动时在窗口环境中启动一个终端窗口,并在其中运行您的脚本。一旦脚本完成(或者您通过按 CTRL+C 中止它),您的终端窗口将返回到提示符。如果您希望终端窗口在脚本完成后自行关闭,您可以在末尾省略 ;/bin/bash。
像这样在终端窗口中运行脚本会很有帮助,因为如果它是一个无限循环的 Python 脚本(例如机器人的脚本),您可以通过按 CTRL+C 轻松终止脚本。否则,要终止脚本,您需要找到我们在下面描述的过程。
杀死脚本
如果您想在 Raspberry Pi 启动后停止自动运行脚本怎么办?如果您的脚本已经完成运行,它将从内存中消失,但如果它旨在连续执行某些操作,则您需要搜索并终止该任务。
1. 使用 ps aux 命令搜索您的脚本,并将您的脚本名称(或至少是部分名称)放在 grep 之后。
将 app.py 替换为您的脚本名称。您将看到一个进程号列表。
2. 使用 sudo kill -9 命令杀死每个进程号。例如,
更多教程:
如何在树莓派上截屏
如何设置 Raspberry Pi Web 服务器
如何在 SSD 或闪存驱动器上运行 Raspberry Pi 4 或 3
如何在 Raspberry Pi 上创建自定义键盘快捷键
如何在 Raspberry Pi 4 上运行模拟器
Raspberry Pi 用户需要知道的 25 多个 Linux 命令
如何使用 Raspberry Pi 制作新闻播报员衬衫