首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用runit进行背景初始化

用runit进行背景初始化
EN

Unix & Linux用户
提问于 2018-09-17 22:42:36
回答 1查看 420关注 0票数 0

最近,我成功地将运行Linux2.6的ARM上的init系统从sysvinit切换到runit。然而,我正在尝试微调初始化例程。我想要一些类似于“oneshot”系统的服务。

初始化例程的一部分是磁盘可能需要格式化,然后必须挂载。其中一个runit服务取决于正在挂载的这个磁盘。然而,其余的服务(如sshd)则没有。因此,如果我可以在后台启动磁盘格式过程,而系统的其他部分则初始化,那就太好了。磁盘格式相当慢,因此如果可以在后台完成,则会对整个启动时间产生重大影响。

我有一个磁盘格式化脚本/usr/local/bin/format_disk.sh,如果磁盘还没有格式化,就可以可靠地格式化它(如果已经格式化了,这是一个非操作)。以下是我目前正在考虑的选择:

  1. 手动运行sudo /usr/local/bin/format_disk.sh:这就是我现在要做的事情,但是我想要自动化这个过程,这样我就可以期望我的系统在没有用户干预的情况下完全初始化。
  2. 在脚本/usr/local/bin/format_disk.sh中运行/etc/runit/1:这并不理想,因为它阻止服务从启动到磁盘格式化。
  3. 创建一个运行/usr/local/bin/format_disk.sh然后终止/循环/等的runit服务:这并不理想,因为它不是一个真正的守护进程,它必须在系统正常运行期间保持正常运行。也许我能让它自己运行sv stop

如果我能在/etc/runit/1中做一些类似于D15的事情,那就太好了,但我怀疑runit在format_disk.sh终止之前仍然不会启动服务。这种怀疑是对的吗?是否有其他方法在/etc/runit/1中启动允许服务启动的后台进程?

在runit系统上在后台运行初始化步骤的最佳方法是什么?

EN

回答 1

Unix & Linux用户

发布于 2018-11-08 01:58:03

有两种选择:

  1. 从依赖服务的运行脚本调用脚本。这将确保脚本在运行服务之前返回。
  2. /etc/rc.local在后台运行脚本,并让脚本在运行时触摸tmpfs文件。然后,在依赖服务的运行脚本中,检查该文件是否存在。
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/469671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档