Alpine 使用OpenRC设置程序开机自启动

这篇具有很好参考价值的文章主要介绍了Alpine 使用OpenRC设置程序开机自启动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

使用 docker start xxx docker restart xxx 启动基于Alpine 的容器后,自动运行自定义的服务。

分析

Alpine使用OpenRC管理服务启动、停止、查看状态及加入启动项。Alpine官方文档中Working with OpenRC章节介绍如下:

OpenRC is the init system used in alpine. The init system manages the services, startup and shutdown of your computer.

OpenRC 是 alpine 中使用的初始化系统。init 系统管理计算机的服务、启动和关闭。

OpenRC

Alpine 默认没有安装 openrc ,可以通过以下命令安装

apk add openrc

安装成功后 /etc/ 下将增加一个 local.d/ 目录

注意:/etc/local.d/目录是安装了openrc 后才有的

/etc/local.d/ 目录就是用于做自启程序的,方法见其下 README 文件,内容如下:

This directory should contain programs or scripts which are to be run
when the local service is started or stopped.

If a file in this directory is executable and it has a .start extension,
it will be run when the local service is started. If a file is
executable and it has a .stop extension, it will be run when the local
service is stopped.

All files are processed in lexical order.

Keep in mind that files in this directory are processed sequentially,
and the local service is not considered started or stopped until
everything is processed, so if you have a process which takes a long
time to run, it can delay your boot or shutdown processing.

除了 /etc/local.d/ 文件夹外,openrc 提供了openrc openrc-init openrc-run openrc-shutdownrc-service rc-sstat rc-statusrc-update 管理服务的命令

程序自启动示例

根据 /etc/local.d/README 介绍, 如果想让程序在启动后执行,可创建一个以.start 结尾的脚本;如果想让程序在容器停止运行时运行,可以创建一个以.stop 结尾的脚本。

以下展示自启动。

需求
让容器启动后运行 live555MediaServer 程序。

步骤
1、在 /etc/local.d/ 下创建脚本,live555MediaServer.start ,内容如下:

cd /data/live/mediaServer/
./live555MediaServer &

**注意:**还有2步需要做才能开机自启。
2、 启用local服务的开机自启 rc-update add local
3、 授予.start脚本的执行权限 chmod +x /etc/local.d/test.start

只需要执行过1次 rc-update add local,以后都直接在/etc/local.d/目录,添加.start脚本并授予执行权限,即可让该脚本开机自启

总结

经反复测试,效果不佳。欢迎各方大佬提出更改意见及方案,谢谢。

另一种开机自启方案,使用 systemd 管理相关服务。如在 ubuntu 操作系统下,可以无需安装即可使用 systemd 来完成自启。

参考:
【 Ubuntu】systemd服务自启
【Ubuntu】systemd 及其工具
【ubuntu】systemd 管理系统组件和服务之间的依赖关系文章来源地址https://www.toymoban.com/news/detail-692873.html

到了这里,关于Alpine 使用OpenRC设置程序开机自启动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 加载错误:openjdk:17-jdk-alpine

    问题: 使用 docker build -t ****** . 命令时报错 = ERROR [internal] load metadata for docker.io/library/openjdk:17-jdk-alpine 解决方法: 把Dockerfile文件里的 FROM openjdk:17-jdk-alpine 改为 FROM openjdk:17

    2024年02月16日
    浏览(47)
  • alpine初始化配置和踩坑记录

    系统默认是禁止ssh密码登录的,所以需要先开启, 可视终端情况下直接nano修改 如果看不到终端可盲打(看不到终端除了盲打还能咋办)输入: 然后重启启动sshd服务, 后续操作均需root权限,可以先\\\"sudo -s\\\"转为root用户,后文默认是非root用户 官方配置工具可以一次性完成键盘

    2024年02月04日
    浏览(74)
  • 【使用debian镜像】docker的基础镜像很多,生产环境中使用建议还是不要使用centos和alpine的基础镜像了,直接使用debian的基础镜像即可。

    本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 未经博主允许不得转载。 博主CSDN地址是:https://blog.csdn.net/freewebsys 博主掘金地址是:https://juejin.cn/user/585379920479288 博主知乎地址是:https://www.zhihu.com/people/freewebsystem 为啥要使用debian镜像呢? 首先 centos的官网已

    2024年02月08日
    浏览(46)
  • dockerfile以alpine为基础镜像构建nginx镜像

    Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版。 Alpine 的意思是“高山的”,它采用了musl libc和busybox以减小系统的体积和运行时资源消耗,同时还提供了自己的包管理工具apk。 由于其小巧、安全、简单以及功能完备的特点,被广泛应用于众多Docker容器中。 a

    2023年04月22日
    浏览(59)
  • 安卓手机Alpine Term本地运行青龙面板【免root】

    目前青龙2.10版本出现白屏问题      最简单的科学上网可以有效解决 我看了网上有作者发出 Alpine Term 安装任意版本青龙 学习一下 写个教程出来 设备:手机   电脑(没有的话比较难用)  不嫌麻烦可以不用电脑   点击下载  Alpine-Term  即可 打开app 等待十几分钟 十几分钟

    2024年02月09日
    浏览(59)
  • ubuntu设置程序开机自启动

    创建一个启动脚本文件,比如 python.sh,并添加以下内容 将脚本设置为可执行 按下 Alt+F2 ,桌面提示输入一个指令,输入 gnome-session-properties 并回车。 点击添加按钮,输入名称,命令添加 gnome-terminal -x /home/xdk/python.sh ,即 gnome-terminal -x + python.sh 脚本的所在目录 ,注释可为空,

    2024年04月26日
    浏览(47)
  • Hyper-V 安装KVM,在KVM中安装alpine

    新建PrivateNet内部网络,设置虚拟网卡ip:172.17.208.1 将sshd_config中UseDNS选项yes改为no并删掉    #vi /etc/ssh/sshd_config    UseDNS no   # systemctl restart sshd.service 设置Centos7ip:172.17.208.2用ssh连接。 上传alpine-standard-3.17.0-x86_64.iso 到/media目录下 virt-install --name alpine --memory=512 --disk pat

    2023年04月11日
    浏览(28)
  • setupfactory安装程序设置开机自启动

    要使安装好的程序能够开机自启,就要将程序添加注册表。 步骤: 1. ,选择after installing  2. ,双击蓝色部分 3. ,选择一个步骤出发注册表   4. isExist = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, \\\"SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run\\\"); -- An if ... else statement that compares two numbers if (isExist

    2024年02月03日
    浏览(39)
  • 如何在ubuntu设置开机自启动程序

    0.前言 1.编写启动程序的脚本文件 2.设置启动应用程序 3.关闭启动可执行程序的sudo权限 4.验证是否成功 0.前言 在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录 如何在ubuntu开机执行某条命令或者某个可执行程序 1.编写启动程序的脚本文

    2024年02月09日
    浏览(76)
  • Ubuntu环境下设置程序开机自启动

    本文介绍Ubuntu环境下开机自启动的方法,主要分为非GUI程序的自启动和GUI程序的自启动。 这里主要介绍通过增加系统服务的方法 在your_service_name.service中增加: 主要解释如下: After:表示需要在某个服务之后运行,如果没有,可以删除这行。 Description:对于服务的描述。 ExecS

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包