创建 Alpine Linux后台服务,与Systemd方式类似的Alpine需要编写一个服务启动脚本,并把脚本放到/etc/init.d/目录下给与执行权限就可以。
例如我有一个 Web程序监听8080端口,改程序为Linux的可执行文件,位于/root/ser
在/etc/init.d/ser创建服务脚本
#!/sbin/openrc-run
command="/root/ser"
command_background=true
pidfile="/run/${RC_SVCNAME}.pid"
- command:填写要执行可执行文件完整路径,如果有参数那么需要使用参数指令,这里不展开,见相关文档说明。
- command_background:表示该程序是一个daemon进程,需要后台运行。
- pidfile:进程ID(PID)存放位置,用于服务控制程序的关闭等操作。
更多命令参考 《OpenRC service script guide》[1]
接下来我们需要给该文件可执行权限
chmod +x /etc/init.d/ser
脚本路径为/etc/init.d/ser,服务的名称就是脚本文件名,接下来就可以通过service指令控制服务器。
# 服务启动 service ser start # 服务状态查看 service ser status # 服务停止 service ser stop
通过start_pre()函数执行文件打开数设置
start_pre() {
ulimit -SHn 65535
echo ">> File open $(ulimit -n)"
}
参考文献
[1]. github . OpenRC . 2018.06 . service-script-guide.md . https://github.com/OpenRC/openrc/blob/master/service-script-guide.md
[2]. serverfault . oxr463 . 2019.07 . Converting a systemd service to OpenRC (Alpine Linux) . https://serverfault.com/questions/974686/converting-a-systemd-service-to-openrc-alpine-linux
[3]. alpinelinux . Writing Init scripts . 2020.02 . https://wiki.alpinelinux.org/wiki/Writing_Init_scripts



