树莓派安装supervisor总结

安装
Ubuntu系统下:apt-get install supervisor,通过这种方式安装后,自动设置为开机启动
也可以通过 pip install supervisor 进行安装,但是需要手动启动,然后设置为开机启动(不推荐这种安装方式)
Supervisor 配置
Supervisor 是一个 C/S 模型的程序,supervisord 是 server 端,supervisorctl 是 client 端。
supervisorctl 操作
supervisorctl 是 supervisord 的命令行客户端工具,使用的配置和 supervisord 一样,这里就不再说了。下面,主要介绍 supervisorctl 操作的常用命令:

1、安装
安装比较简单执行一下命令即可
sudo apt-get install supervisor
2、修改配置文件
/etc/supervisor/supervisord.conf
3、添加进程配置文件
在/etc/supervisor/conf.d下添加 xxx.conf即可内容如下
[program:cameraService]
directory =/home/project/CameraServer/
command =gunicorn -w 4 -b 0.0.0.0:5000 index:app
autostart = true
startsecs = 5
autorestart = true
startretries = 10
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20

stdout_logfile = /home/project/CameraServer/CameraServer.log
转:树莓派程序开机自启动方法总结:

刚上手树莓派,也因此接触Linux,对Linux系统很多机制都不熟悉,先前想把自己写的一个程序随树莓派开机启动,搜寻并尝试了网上各种方法,经过一番折腾,总结了四种实现开机自启动的方法。制作测试脚本首先我们需要制作一个脚本来测试自启动是否有效。在终端下输入并回车新建脚本文件testboot.shpi@raspberry:~ $ nano testboot.shtestboot.sh文件内容如下:
#!/bin/sh
touch /home/pi/testboot.txt
chmod 777 /home/pi/testboot.txt
echo “hello pi~” >> /home/pi/testboot.txt
测试脚本将打印字符串到文件中。按ctrl+o保存文件,再按ctrl+x退出编辑器。给脚本文件添加执行权限:pi@raspberry:~ $ chmod 777 testboot.sh测试一下脚本功能:pi@raspberry:~ $ ./testboot.sh执行正常的话会在当前目录(pi)生成一个testboot.txt的文本文件。显示文件内容:pi@raspberry:~ $ cat testboot.txt

添加自启动方法一:向rc.local文件添加启动代码修改rc.local文件,在终端输入并回车:pi@raspberry:~ $ sudo nano /etc/rc.local在打开的文本中找到exit 0,在此之前添加的代码在启动时都会被执行,在exit 0 之前添加一行代码:su pi -c "exec /home/pi/testboot.sh"ctrl+o保存,ctrl+x退出,然后在终端输入:sudo reboot ,重启系统测试。su命令是指定在pi用户下执行这条命令,-c 表示执行完这条命令之后恢复原来的用户。注意:系统启动时在执行这段代码时是使用root用户权限的,如果不指定pi用户,可能会因为权限问题导致脚本执行失败。

方法二:将程序作为服务启动在/etc/init.d/目录下新建一个服务脚本文件。在终端输入并回车pi@raspberry:~ $ sudo nano /etc/init.d/testboot在空白文件中输入以下内容:
#!/bin/sh
#/etc/init.d/testboot

BEGIN INIT INFO

Provides:testboot

Required-Start:$remote_fs $syslog

Required-Stop:$remote_fs $syslog

Default-Start:2 3 4 5

Default-Stop:0 1 6

Short-Description: testboot

Description: This service is used to start my applaction

END INIT INFO

case “$1” in
start)
echo “start your app here.”
su pi -c “exec ~/testboot.sh”
;;
stop)
echo “stop your app here.”
;;
*)
echo “Usage: service testboot start|stop”
exit 1
;;
esac
exit 0
ctrl+o保存,ctrl+x退出。设置脚本可执行权限:pi@raspberry:~ $ sudo chmod 777 /etc/init.d/testboot最后将该脚本作为服务设置开机自动加载:pi@raspberry:~ $ sudo update-rc.d testboot defaultssudo reboot 重启测试。

方法三:通过桌面启动此方法是在加载了桌面后再启动我们自定义的程序,因此需要安装带有桌面的版本,如果不是请跳过。在/home/pi/.config/目录下新建一个名为 autostart 的文件夹:pi@raspberry:~ $ mkdir .config/autostart在 autostart 目录下新建testboot.desktop (经测试名字任意,但后缀必须是.desktop):pi@raspberry:~ $ nano .config/autostart/testboot.desktop文件内容如下:
[Desktop Entry]
Type=Application
Name=testboot
NoDisplay=true
Exec=/home/pi/testboot.sh
sudo reboot 重启测试。注意:这个方法除了依赖桌面之外,如果开启了多个桌面则会导致自定义的程序多次启动。比如系统启动桌面会调用一次testboot.sh脚本,如果再用远程桌面登录到树莓派,脚本会再执行一次。

方法四:使用systemctl设置服务在/usr/lib/systemd/system/ 下新建文件testboot.service:pi@raspberry:~ $ sudo nano /usr/lib/systemd/system/testboot.service如果目录system不存在,请自行创建:pi@raspberry:~ $ sudo mkdir /usr/lib/systemd/systemtestboot.service文件内容如下:
[Unit]
Description=testboot
[Service]
Type=oneshot
ExecStart=/home/pi/testboot.sh
[Install]
WantedBy=multi-user.target
这里直接指定启动文件的路径,无法指定到pi用户执行,所以只能在root用户下执行。设置服务自启动:pi@raspberry:~ $ sudo systemctl enable testboot.service注意:这个方法与方法二类似都是通过服务启动,所以如果两种方法同时使用要注意不能使用同个服务名。总结除了通过桌面启动以外,其他方式在执行启动代码的时候都是用root用户在执行的,所以需要特别注意权限的问题,最好就全部都指定到pi用户去执行。除了可以执行脚本之外,也可以启动自己写的程序或者python脚本,需要注意的是如果自启动的程序有依赖于其他服务则必须等待其他服务加载完毕才能正常启动,保险的做法延时后再启动。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值