码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-03 23:57:05      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:配置文件   emctl   1.2   命名   upd   实例   后台   AC   运行程序   

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: <Short Discription>
# Description:       <Discription>
### END INIT INFO

case "$1" in
    start)
        echo "Starting <pismartcar_demo>"
        <command to run>python /home/pi/voicecontrol/voicecontrol.py &
        ;;
    stop)
        echo "Stopping <pismartcar_demo>"
        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 <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

 

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

标签:配置文件   emctl   1.2   命名   upd   实例   后台   AC   运行程序   

原文地址:https://www.cnblogs.com/klstime/p/8711224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!