设置Raspberry Pi开机启动

树莓派程序开机启动设置。python

关于开机启动,我在网上找的一个教程,而后照着作了一次。bash

须要开机启动的程序是本身写的 个人是一个数据传输的程序,名字为 trans.pyide

 

开机启动脚本,保存在/etc/init.d目录下面:测试

#!/bin/bashui

# /etc/init.d/transspa

### BEGIN INIT INFO.net

# Provides: xiaofeng命令行

# Required-Start: $remote_fs $syslogorm

# Required-Stop: $remote_fs $syslog教程

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: trans initscript

# Description: transform data

### END INIT INFO

 

case "$1" in

    start)

        echo "Starting trans"

        /scream/trans.py &

        ;;

    stop)

        echo "Stopping trans"

        #kill all trans.py

        kill $(ps aux | grep -m 1 'python /scream/trans.py' | awk '{ print $2 }')

        ;;

    *)

        echo "Usage: service ledblink start|stop"

        exit 1

        ;;

esac

exit 0

 

这个是原来的脚本。我把红色标记的地方换成了个人程序的信息,而后就OK了。我脚本 的保存的名字是trans  

修改权限:sudo chmod +x /etc/init.d/trans

能够经过service命令测试一下

 

sudo service trans start#启动

sudo service trans stop#中止

 

我开始时测试service命令出错,说找不到文件,应该是权限的问题,后来我又从新作了一边,莫名其妙得好了。

 

最后设置开机启动:sudo update-rc.d trans defaults

删除开机启动:update-rc.d -f trans remove

参照文章的出处:

https://www.embbnux.com/2015/04/12/raspberry_pi_setting_python_script_start_on_boot/

Update-rc.d 命令的用法 http://www.52pi.net/?p=255

关于脚本语言的case的用法:

case 字符串 in

模式1) command;;

模式2) command;;

......

Esac

Case语句是多分支语句,它按照“)”左边的模式对字符串值的匹配来执行相应的命令,匹配是由上而下地进行,老是执行首先匹配到的模式对应的命令表。若是,模式中的每个都匹配不到,则什么也不执行,一边后再后面放一个*),表示以上都不匹配的任意字符串。“;;”表示该模式对应的命令部分的程序。

 

$#:表示保存程序命令行参数的数目。

$?:表示保存前一个命令的返回值。

$0:表示列出当前的程序名

$*:表示以“$1 $2...”的形式保存全部输入的命令行参数

$@:表示以“$1”“$2”...的形式保存全部输入的命令行参数。

$n:$1为命令行的第一个参数,$2为命令行的第二个攒书,一次类推。

 

权限设置:

chmod u+x name 表示只有本身能够执行

chmod ug+x name 表示本身以及同一群能够执行。

chmod +x 表示全部人均可以执行

相关文章
相关标签/搜索