树莓派 实现脚本程序自启动
一、前言
本文程序自启动方法是:将脚本程序作为服务启动。
二、自启动配置
1. 创建测试文件
-
如果已经有了自启动的目标文件,请跳过这一步,到 "新建服务脚本文件" 。
-
在
/home/pi
目录下,创建测试文件test_self_start.sh
:#!/bin/sh touch /home/pi/test_hp.txt chmod 777 /home/pi/test_hp.txt echo "Hello Pi" >> /home/pi/test_hp.txt
2. 新建服务脚本文件
在/etc/init.d/目录下新建一个服务脚本文件。在终端输入并回车
pi@raspberry:~ $ sudo vim /etc/init.d/test_self_start
3. 输入内容
在空白文件中输入以下内容,其中:
- "test_self_start" 是我建的服务文件名,请根据需求自行更改;
- 第 15 行请改为:
su pi -c "exec 你的脚本文件的绝对路径"
; - 里面所有的
echo
语句,都是对自启动服务的启动/暂停等功能的说明,可根据需求自行更改。
#!/bin/sh
#/etc/init.d/test_self_start
### BEGIN INIT INFO
# Provides:aly-pi-net
# Required-Start:$remote_fs $syslog
# Required-Stop:$remote_fs $syslog
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description: test self_start
# Description: This service is used to start my applaction
### END INIT INFO
case "$1" in
start)
echo "start test_self_start."
su pi -c "exec /home/pi/test_self_start.sh"
;;
stop)
echo "stop test_self_start."
;;
*)
echo "Usage: service test_self_start start|stop"
exit 1
;;
esac
exit 0
4. 保存退出
按下 ESC
,再输入 :wq
保存退出
5. 设置脚本可执行权限:
pi@raspberry:~ $ sudo chmod 777 /etc/init.d/test_self_start
6. 开机自动加载
最后将该脚本作为服务设置开机自动加载:
pi@raspberry:~ $ sudo update-rc.d test_self_start defaults
三、成功测试
- 如果以自定义的目标文件实现自启动,请观察结果。
- 对于本文测试脚本
test_self_start.sh
来说:- 保证
/home/pi
文件下,没有test_hp.txt
文件 sudo reboot
重启- 重启后查看在
/home/pi
目录下,是否有echo
重定向文件test_sh.txt
,检查内容是否为Hello Pi
。
- 保证