在树莓派上添加开机执行python脚本的程序,以下为用LED测试脚本来演示说明。

1、环境

  • 树莓派为raspberry pi cm4;

2、步骤

2.1、写python脚本

如下为LED闪烁的测试脚本程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# !/usr/bin/python

import RPi.GPIO as GPIO
import time
import os
import sys

led_pin = 26

GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)

while True:
GPIO.output(led_pin,1)
time.sleep(0.2)
GPIO.output(led_pin,0)
time.sleep(0.2)

将上述文件保存到 /home/pi/led.py 。

2.2、写启动脚本

一个脚本示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash 
# /etc/init.d/led
### BEGIN INIT INFO
# Provides: embbnux
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: led initscript
# Description: This service is used to test led
### END INIT INFO
case "$1" in
start)
echo "Starting led service"
nohup /usr/bin/python /home/pi/led.py &
;;
stop)
echo "Stopping led service"
#kill led.py
kill $(ps aux grep -m 1 'python /home/pi/led.py' awk '{ print $2 }')
;;
*)
echo "Usage: service led startstop"
exit 1
;;
esac
exit 0

将上述脚本保存在 /home/pi/led。

2.3、开机执行

在 /home/pi 下依次执行下面命令

  • 更改执行权限
1
2
sudo chmod +x led.py
sudo chmod +x led
  • 添加启动项并开始服务
1
2
3
sudo cp led /etc/init.d/
sudo update-rc.d led defaults
sudo service led start
  • 重启后可以看到开机后会自动执行LED闪烁