当前位置:首页 > Web开发 > 正文

设置Raspberry Pi开机启动

2024-03-31 Web开发

树莓派措施开机启动设置。

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

需要开机启动的措施是本身写的 我的是一个数据传输的措施,名字为 trans.py

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

#!/bin/bash

# /etc/init.d/trans

### BEGIN INIT INFO

# Provides: xiaofeng

# Required-Start: $remote_fs $syslog

# 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 命令的用法 ?p=255

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

case 字符串 in

模式1) command;;

模式2) command;;

......

Esac

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

$#:暗示生存措施命令行参数的数目。

$?:暗示生存前一个命令的返回值。

$0:暗示列出当前的措施名

$*:暗示以“$1 $2...”的形式生存所有输入的命令行参数

[email protected]:暗示以“$1”“$2”...的形式生存所有输入的命令行参数。

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

权限设置:

chmod u+x name 暗示只有本身可以执行

chmod ug+x name 暗示本身以及同一群可以执行。

chmod +x 暗示所有人都可以执行

设置Raspberry Pi开机启动

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30281.html