安装rc-service服务
Alpine使用的是OpenRCinit系统,而rc-service是openrc的一部分
# 安装openrc
apk add openrc --no-cache
rc添加自定义服务
# 编辑自定义服务文件
vim /etc/init.d/服务文件名
基本配置
#!/sbin/openrc-run
# 定义服务的名称变量
name="actc"
# 定义服务的执行路径,将使用该路径启动服务程序
command="/path/to/${name}"
# 定义服务的启动参数
command_args="--param1 value1 --param2 value2"
# 后台运行的选项(通常用于守护进程),这里被注释掉了
#command_background="yes"
# 提供服务的描述信息
description="Custom service for ${name}"
# 定义服务的依赖关系
depend() {
# 指定该服务应在 sshd 服务之后启动
after sshd
# 指定该服务需要网络(net 服务)支持
need net
}
完整配置
#!/sbin/openrc-run
# 定义服务的名称变量
name="xxx"
# 定义服务的执行路径,将使用该路径启动服务程序
command="/path/to/${name}"
# 定义服务的启动参数
command_args="--param1 value1 --param2 value2"
# 后台运行的选项(通常用于守护进程),这里被注释掉了
# command_background="yes"
# 提供服务的描述信息
description="Custom service for ${name}"
# 定义服务的依赖关系
depend() {
# 指定该服务需要网络(net 服务)支持
need net
# after 后置强依赖条件
# 指定该服务应在 sshd 服务之后启动
after sshd
# use 非强依赖
## 如果 目标服务存在且已运行,那么当前服务会优先使用它,目标服务不存在未运行,服务依然会启动
# 指定该服务要在 logger 服务之后启动
use logger
# 指定该服务可以使用 audit
use audit
# 指定该服务可以使用 loadkeys
use loadkeys
}
# 在启动服务之前的预处理函数
start_pre() {
# 打印启动前的消息
ebegin "Preparing to start ${name}"
# 可以在这里添加任何启动服务之前的准备工作
eend $? # eend 会输出函数操作的结果状态,$? 表示上一个命令的返回值
}
# 启动服务的函数
start() {
# 打印启动消息
ebegin "Starting ${name}"
# 使用 start-stop-daemon 命令启动服务
start-stop-daemon --start --exec ${command}
eend $? # 输出启动操作的结果状态
}
# 停止服务的函数
stop() {
# 打印停止消息
ebegin "Stopping ${name}"
# 使用 start-stop-daemon 命令停止服务
start-stop-daemon --stop --exec ${command}
eend $? # 输出停止操作的结果状态
}
# 重新启动服务的函数
restart() {
# 打印重新启动消息
ebegin "Restarting ${name}"
# 停止服务
start-stop-daemon --stop --exec ${command}
# 等待 1 秒钟,确保服务完全停止
sleep 1
# 启动服务
start-stop-daemon --start --exec ${command}
eend $? # 输出重新启动操作的结果状态
}
rc管理服务
- 显示所有服务
# 显示所有服务
rc-status -a
- 列出所有可用服务
# 列出所有可用服务
rc-service --list
- 启动/停止/重启 已有服务
# 启动/停止/重启 已有服务
rc-service 服务名 start/stop/restart
OR
# 启动/停止/重启 已有服务
/etc/init.d/服务名 start/stop/restart
服务开机自启
# 设置开机自启动
rc-update add {service-name}
# 删除开机启动服务
# rc-update del {service-name}
Alpine安装sshd重启sshd服务
参考:
https://mayanpeng.cn/archives/248.html
# 刷新源
apk update
# 安装sshd服务
apk add openssh-server
# 启动sshd服务
rc-service sshd start
# 设置sshd开机启动
rc-update add sshd
# 删除sshd开机启动服务
# rc-update del sshd
# 开放Root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
# 重启sshd服务
rc-service sshd restart