树莓派Linux 开机自启动脚本 设置方法

本文介绍如何配置树莓派,在开机时自动运行指定的Python脚本,并确保其正常输出数据。通过调整启动命令,避免使用绝对路径,先切换到目标文件夹再启动程序,实现了与手动运行相同的效果。

最近在用树莓派开发一个监控软件,需要终端上电后自动运行脚本程序。

网上调研的方法是:在/etc/rc.local文件中添加命令行如:sudo /home/pi/python3 a.py & (a.py为我们要运行的程序,&表示后台运行)。

但实际运行时发现,该方法可以启动程序,但没有数据输出,分析原因可能是运行环境不同。

经过尝试后发现,不要用绝对路径启动,分两步,首先切换到目标文件夹,再启动目标程序,如下:
1、打开rc.local文件

sudo vim /etc/rc.local

2、在exit之前加入如下命令:

cd /home/pi                   # 第一步
sudo python3 a.py &           # 第二步

保存退出后重启树莓派,这样就和手动运行的效果一样了!

### 设置树莓派5开机自启动脚本 对于树莓派5,有多种方法可以设置一个脚本在系统启动时自动运行。以下是几种常用的方法: #### 方法一:使用 `rc.local` `/etc/rc.local` 文件是一个传统的方式,在其中添加命令可以让这些命令在系统初始化完成后执行。 编辑 `/etc/rc.local` 文件并加入要执行的命令: ```bash sudo nano /etc/rc.local ``` 在这个文件中,在 `exit 0` 前面添加想要执行的命令或调用编写的Shell脚本路径[^1]。 例如,如果有一个名为 `mystartup.sh` 的脚本位于用户的主目录下,则应如下所示输入: ```bash /home/pi/mystartup.sh & ``` 注意最后加上 `&` 符号表示后台运行该进程,防止阻塞其他服务启动过程。 保存更改后重启设备验证效果。 #### 方法二:通过 Systemd 创建服务单元文件 现代 Linux 发行版推荐使用 systemd 来管理守护程序和服务。创建一个新的 `.service` 单元文件来定义如何以及何时启动特定的服务。 假设希望启动一个 Python 脚本作为服务,可以在 `/lib/systemd/system/` 下新建一个 .service 文件比如命名为 `my_service.service`: ```ini [Unit] Description=My Custom Service After=network.target [Service] ExecStart=/usr/bin/python3 /path/to/script.py WorkingDirectory=/path/to/ StandardOutput=inherit StandardError=inherit Restart=always User=pi [Install] WantedBy=multi-user.target ``` 之后刷新 daemon 并启用新创建的服务以便于下次开机会加载它: ```bash sudo systemctl daemon-reload sudo systemctl enable my_service.service ``` #### 方法三:利用 Crontab @reboot 功能 Cron 是 Unix/Linux 中用于定时任务调度的一个工具;而 `@reboot` 特殊字符串允许指定当计算机重新引导时应该做什么工作。 打开当前用户的 crontab 配置界面: ```bash crontab -e ``` 接着追加一行包含待执行指令的内容,像这样: ```bash @reboot python3 /home/pi/my_script.py >/dev/null 2>&1 ``` 这会使得每次机器重启的时候都会尝试去跑一次这个Python脚本,并且任何标准输出都将被丢弃以减少日志量。 以上三种方式都可以实现让某个脚本随同操作系统一起启动的功能,具体选择哪一种取决于个人喜好和技术背景等因素考虑。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值