树莓派把一个python脚本作为服务运行,配置开机自动启动

周六黑客马拉松做了个树莓派遥控船,发现简单的把python脚本加到rc.local好像无法自动启动,于是找到了下面的方法,做成一个服务。

##首先写个Python脚本
文件保存在/home/pi/script/ledblink.py
123456789101112131415#!/usr/bin/env python import``RPi.GPIO as GPIO``import``time``GPIO.setmode(GPIO.BCM)``GPIO.setup(``21``,GPIO.OUT)``while``True``:`` ``try``:`` ``GPIO.output(``21``,``True``)`` ``time.sleep(``1``)`` ``GPIO.output(``21``,``False``)`` ``time.sleep(``1``)`` ``except``(KeyboardInterrupt, SystemExit):`` ``GPIO.close()`` ``print``"exit"## 二 开机启动脚本
保存脚本为/etc/init.d/ledblink文件
1234567891011121314151617181920212223242526272829#!/bin/bash``# /etc/init.d/ledblink ### 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: ledblink initscript``# Description: This service is used to manage a led``### END INIT INFO case``"$1"``in`` ``start)`` ``echo``"Starting LED Blink"`` ``/home/pi/script/ledblink``.py &`` ``;;`` ``stop)`` ``echo``"Stopping ledblink"`` ``#killall ledblink.py`` ``kill``$(``ps``aux | ``grep``-m 1 ``'python /home/pi/script/ledblink.py'``| ``awk``'{ print $2 }'``)`` ``;;`` ``*)`` ``echo``"Usage: service ledblink start|stop"`` ``exit``1`` ``;;``esac``exit``0##三 设置python脚本开机启动
1sudo``chmod``+x ``/etc/init``.d``/ledblink这样启动改脚本用service 命令就可以
12sudo``service ledblink start``#启动``sudo``service ledblink stop``#停止最后设置开机启动就好了
1sudo``update-rc.d ledblink defaults这样就完工了,重启树莓派就会发现led自己闪烁了,停止用sudo service ledblink stop就行

Contents
,