关于树莓派自启动脚本的编写

1 自启动的原理是将想要重启时运行的文件放置在主目录下,在程序开机时就开始运行程序。(python /home/pi/ <文件> )

1.1 开机自启需要一个开机自启配置文件:
示例:

#!/bin/bash
# /etc/init.d/<service name>

### BEGIN INIT INFO
# Provides: servoblaster
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: <Short Discription>
# Description: <Discription>
### END INIT INFO

case "$1" in
start)
echo "Starting <service name>"
<command to run> &
;;
stop)
echo "Stopping <service name>"
sudo kill $(ps aux | grep -m 1 '<command name>' | awk '{ print $2 }')
sudo kill $(ps aux | grep -m 1 '<command name>' | awk '{ print $2 }')
;;
*)
echo "Usage: sudo service <service name> start|stop|restart"
exit 1
;;
esac
exit 0

 

1.2 完整实例

#!/bin/bash
# /etc/init.d/<pismartcar_demo>

### BEGIN INIT INFO
# Provides:          servoblaster
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: pismartcar_demo
# Description:       pismartcar_demo
### END INIT INFO

case "$1" in
    start)
        echo "Starting pismartcar_demo"
        sudo python /home/pi/voicecontrol/voicecontrol.py &
        ;;
    stop)
        echo "Stopping pismartcar_demo"
        sudo kill $(ps aux | grep -m 1 'pismartcar_demo' | awk '{ print $2 }')
        sudo kill $(ps aux | grep -m 1 'pismartcar_demo' | awk '{ print $2 }')
        ;;
    *)
        echo "Usage: sudo service pismartcar_demo start|stop|restart"
        exit 1
        ;;
esac
exit 0

 

2,格式非常重要。Linux和Windows的空格符有很大的不同。在Linux下运行应当是unix格式的,在sublime下编写代码时需要将格式调整到unix 

3,

第二行 <service name> 填写自启服务的名称.
填写 <Short Discription>和<Discription>
在start里面 填写后台程序运行命令, 末尾要加' &' 保证在后台运行. 这里运行的路径需要使用绝对路径.
stop里面把<command name> 喜欢丞后台运行程序的名称. 建议在手动运行start里的命令后, 再使用`ps aux`来查看运行的名称. 保证stop的时候能够正确关闭服务, 也不会关错其他服务.

注意, 服务配置运行后无法查看返回信息, 建议先手动运行:

sudo service <service name> start

查看能否正常运行,并使用:

sudo service <service name> stop
查看程序能否正常关闭

3.1. 文件命名:
文件命名与<service name>相同.不需要后缀

3. 配置:
添加可执行权限:

sudo chmod +x <service name>

拷贝到`/etc/init.d/`

sudo cp <service name> /etc/init.d/<service name>

开机自启:

sudo update-rc.d <service name> defaults

状态查询:

systemctl status pismartcar_demo.service

 

转载于:https://www.cnblogs.com/klstime/p/8711224.html

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值