用户
 找回密码
 立即注册

QQ登录

只需要一步,快速开始

搜索

85

主题

155

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
42477
2017-6-15 14:16:02 geeiot 管理员 楼主 1741
本文主要讲诉设置python脚本在树莓派上自动运行。开机自动运行会有很多方法,比如设置rc.d之类的呀。但是毕竟不是最好的。这儿就来讲讲如何用服务的方式进行开机启动。
timg.jpg


一、首先写个简单的python 脚本
脚本很简单,就是树莓派上一个灯闪烁程序,需要学gpio可以看我之前的博客
文件保存在/home/pi/script/ledblink.py
  1. #!/usr/bin/env python
  2.   
  3. import RPi.GPIO as GPIO
  4. import time
  5. GPIO.setmode(GPIO.BCM)
  6. GPIO.setup(21,GPIO.OUT)
  7. while True:
  8.   try:
  9.     GPIO.output(21,True)
  10.     time.sleep(1)
  11.     GPIO.output(21,False)
  12.     time.sleep(1)
  13.   except (KeyboardInterrupt, SystemExit):
  14.     GPIO.close()
  15.     print "exit"
复制代码
启动脚本可以是python,可以是shell,也可以是C语言C++编译的可执行文件。
二 、开机启动脚本
保存脚本为/etc/init.d/ledblink文件
  1. #!/bin/bash
  2. # /etc/init.d/ledblink
  3.   
  4. ### BEGIN INIT INFO
  5. # Provides: embbnux
  6. # Required-Start: $remote_fs $syslog
  7. # Required-Stop: $remote_fs $syslog
  8. # Default-Start: 2 3 4 5
  9. # Default-Stop: 0 1 6
  10. # Short-Description: ledblink initscript
  11. # Description: This service is used to manage a led
  12. ### END INIT INFO
  13.   
  14. case "$1" in
  15.     start)
  16.         echo "Starting LED Blink"
  17.         /home/pi/script/ledblink.py &
  18.         ;;
  19.     stop)
  20.         echo "Stopping ledblink"
  21.         #killall ledblink.py
  22.         kill $(ps aux | grep -m 1 'python /home/pi/script/ledblink.py' | awk '{ print $2 }')
  23.         ;;
  24.     *)
  25.         echo "Usage: service ledblink start|stop"
  26.         exit 1
  27.         ;;
  28. esac
  29. exit 0
复制代码
三、设置python脚本开机启动
  1. sudo chmod +x /etc/init.d/ledblink
复制代码
这样启动改脚本用service 命令就可以
  1. sudo service ledblink start#启动
  2. sudo service ledblink stop#停止
复制代码
最后设置开机启动就好了
  1. sudo update-rc.d ledblink defaults
复制代码
这样就完工了,重启树莓派就会发现led自己闪烁了,停止用sudo service ledblink stop就行。
使用道具 举报 回复
这个挺不错的。特别是以服务的形式设置开机启动
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册