给 OpenWrt 写服务项的一次记录
你看这现在哪有教程啊…这都是大棚的教程
众所周知,OpenWrt 的服务项管理并不是 systemd,这就导致当我们想要整一个启动项的时候,难如登天,在经历了昨晚的抓狂(其实某人昨晚玩了一晚上冒险解谜游戏)之后,我终于学会了如何写一个简单的 OpenWrt 服务项。
先来看下 OpenWrt 给的一个服务项(init script)的例子
一个基本的服务项应包含以下几个部分
1 | #!/bin/sh /etc/rc.common |
但以上的这些只是最基本的,具体使用时还需要「稍加修改」
例子
因为不想在手机上挂某些「科学」软件,于是就打算在 OpenWrt 上跑。因为性能有限(OpenWrt:你还想跑 GUI?给你个核心跑得了)只能跑核心了。
跑核心需要手动写服务项,因此就写了个。
所需要的文件:
一个位于 /root 目录下的文件夹
vs
二进制文件 /root/vs/verysimple
配置文件 /root/vs/client.toml
GeoIP 数据库 /root/vs/GeoLite2-Country.mmdb
跑其他的东西按照这个例子,照葫芦画瓢下就行。
免责声明:本人不对该例子及其衍生文件所造成的后果及影响承担任何责任!
修改完之后,注意用 dos2unix
转换一下,以免出现奇怪的问题。
然后将其复制到 OpenWrt 的 /etc/init.d/ 目录,即可在 OpenWrt 的 LuCI 上看到这个服务项了。
如果 OpenWrt 的 IP 是默认的,点这里可以跳转到启动项管理页面。
杂记(更碎一点的内容)
dos2unix
这玩意主要就是用来转换 dos 与 unix 系统之间的格式的,例如换行符 Windows 采用的是 \r\n
,而 Linux 采用的则是 \n
默认情况下,Windows 并不自带 dos2unix,但是 Git Bash 的 Cygwin 是自带的,因此可以用 Git Bash 来转换。
用法:
1 | dos2unix.exe 转换目标 |