Hello, 依然关注我的朋友们,大家好,今天不仅是发个贴,还有一部分原因是我的新书上架京东了,这本书就是围绕树莓派来展开的,其中包含了和树莓派相关的GPIO引脚功能部分使用的一些简单应用,可以作为你手边的一个资料查询用书,也可以作为敲砖引玉之用,希望能激发你更深的脑洞...
顺便做个记录,最近在树莓派上添加了一个带RGB的风扇,原理是风扇内部包含一个ws281x的RGB彩灯, 通过GPIO18 引脚接入了树莓派, 需要通过编程控制彩灯显示RGB彩灯效果,但是每次开机后需要自己去配置,启动, 并且还要丢入后台避免占用终端,有时候开机后忘记了再想起来执行就有点儿烦。
因此,决定使用Linux系统的systemd服务来管理这个RGB彩灯的程序。
什么是systemd.service ? 又名: 服务单元配置。
在树莓派的Linux系统中,一般会在/lib/systemd/system/目录中存在一些名称以“ .service”结尾的单元配置文件, 这里面编写着一些由 systemd 控制和监督的进程的信息,以及你自定义的一些启动程序信息。
它包含了以下几个特点:
通用配置项在通用的 [Unit] 和 [Install] 部分进行配置。
服务特定的配置选项在 [Service] 部分进行配置。
附加选项列在 systemd.exec (5)中,它定义了执行命令的执行环境
在 systemd.kill (5)中,它定义了服务进程的终止方式
systemd.resource- control (5),它为服务的进程配置资源控制设置。
如果启用了 SysV init compat,systemd 会自动创建包装 SysV init 脚本的服务单元。
注意,自己配置只需要编写一个服务名称与脚本名称相同,加一个“ .service”后缀的文件并配置一下简单的启动配置就好。
首先,讲述一下设备连接方式:
可以在树莓派上通过命令:
pinout
可以获取到如下信息,
然后针对树莓派链接的冰塔散热器的风扇
硬件连接已经清楚了,下面我们就要进行灯环的驱动配置了。
确保你的树莓派连接到互联网,这个需要保证你树莓派的IP,网关,和DNS地址正确,有时候就是因为DNS服务器不正确导致上网失败。可以通过下面的命令检查一下:
然后在键盘上按下Ctrl + C终止。
也可以配置/etc/resolv.conf 里面的nameserver来配置DNS服务器地址。
当树莓派能够正常联网后,打开一个终端,执行:
执行成功后,创建一个build目录并进行编译:
编译完成后,会在当前目录中生成一个‘test’ 文件,绿色的可执行文件。将其拷贝到/usr/bin/下,方便用户调用,不用编辑环境变量就可以执行了。这样就执行了moodlight并丢入后台,你会看到风扇灯光闪烁。。
但是当你关机后,这个灯光就消失了,那怎么让它开机能自动启动,并且还能通过我命令行简单的一条命令进行开启和关闭控制呢?到这里,我们就要进入主题了:systemd服务配置写起来!
进入系统服务配置目录并编辑一个名字为: minitower_moodlight.service的文件。
填写如下内容:
然后保存退出后执行:
这时候,你会看到一个系统服务叫minitower_moodlight在后台运行着,并且可以通过简单的执行下面的命令来停止:
审核编辑:刘清
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)