<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>首页 on OpenRC</title><link>https://www.openrc.net/</link><description>Recent content in 首页 on OpenRC</description><generator>Hugo</generator><language>zh-CN</language><copyright>[black8](http://0x8.net/)</copyright><lastBuildDate>Fri, 03 Jan 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://www.openrc.net/index.xml" rel="self" type="application/rss+xml"/><item><title>Markdown Syntax Guide</title><link>https://www.openrc.net/post/markdown-syntax-guide/</link><pubDate>Fri, 03 Jan 2020 00:00:00 +0000</pubDate><guid>https://www.openrc.net/post/markdown-syntax-guide/</guid><description>&lt;p&gt;For a quick cheatsheet, check out &lt;a href="https://simplemde.com/markdown-guide"&gt;https://simplemde.com/markdown-guide&lt;/a&gt;.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.&lt;/p&gt;</description></item><item><title>OpenRC用户指南</title><link>https://www.openrc.net/openrc_user_guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.openrc.net/openrc_user_guide/</guid><description>&lt;h1 id="openrc用户指南"&gt;OpenRC用户指南&lt;/h1&gt;&#10;&lt;h2 id="目的与描述"&gt;目的与描述&lt;/h2&gt;&#10;&lt;p&gt;OpenRC是适用于类Unix操作系统的初始化系统。它负责整个系统(包括各项服务)的启动和关闭。&lt;/p&gt;&#10;&lt;p&gt;它源自Gentoo的“基础布局”软件包，该软件包是一种定制的纯Shell启动解决方案。（这种解决方案既难以维护和调试，性能也不是很好）&lt;/p&gt;&#10;&lt;p&gt;出于性能和灵活性方面的考虑，其大部分核心部分是用C99编写的，而其他部分则使用的是符合POSIX标准的shell脚本。&lt;/p&gt;&#10;&lt;p&gt;目前，它的C语言代码量约为10000行，shell脚本代码量约为4000行。&lt;/p&gt;&#10;&lt;p&gt;众所周知，OpenRC可在Linux、许多BSD系统（至少包括FreeBSD、OpenBSD、DragonFlyBSD ）以及HURD系统上运行。&lt;/p&gt;&#10;&lt;p&gt;服务是有状态的（也就是说，如果已经执行了“启动”操作，再次执行“启动”会提示“该服务已启动”）。&lt;/p&gt;&#10;&lt;h2 id="openrc启动"&gt;openrc启动&lt;/h2&gt;&#10;&lt;p&gt;通常，PID1（又名 &lt;code&gt;init&lt;/code&gt;）会调用 OpenRC 二进制文件（默认情况下为 &lt;code&gt;/sbin/openrc&lt;/code&gt;）。&#10;（默认设置假定在此情况下使用 sysvinit）&lt;/p&gt;&#10;&lt;p&gt;OpenRC会扫描运行级别（默认路径是 &lt;code&gt;/etc/runlevels&lt;/code&gt;）并构建一个依赖图，然后启动所需的服务脚本，既可以按顺序执行（默认方式），也可以并行执行。&lt;/p&gt;&#10;&lt;p&gt;当所有服务脚本启动后，OpenRC就会终止，它不会以守护进程的形式持续运行。不过，OpenRC可以与诸如monit、runit或s6等工具进行集成。&lt;/p&gt;&#10;&lt;h2 id="关闭"&gt;关闭&lt;/h2&gt;&#10;&lt;p&gt;当系统运行级别变更为 0 或 6，或者执行&lt;code&gt;reboot&lt;/code&gt;、&lt;code&gt;halt&lt;/code&gt;等命令时，OpenRC会停止所有已启动的服务，并运行&lt;code&gt;shutdown&lt;/code&gt;运行级别里的服务。&lt;/p&gt;&#10;&lt;h2 id="openrc修改服务脚本"&gt;openrc修改服务脚本&lt;/h2&gt;&#10;&lt;p&gt;任何服务都可以随时通过执行 &amp;lsquo;rc-service someservice start&amp;rsquo;、&amp;lsquo;rc-service someservice stop&amp;rsquo; 等来启动/停止/重启。&#10;另一种不太受欢迎的方法是直接运行服务脚本，例如 &amp;lsquo;/etc/init.d/service start&amp;rsquo;、&amp;rsquo;/etc/init.d/service stop&amp;rsquo; 等。&lt;/p&gt;&#10;&lt;p&gt;OpenRC会处理依赖性问题，例如启动apache会先启动network，而停止network会先停止apache。&lt;/p&gt;&#10;&lt;p&gt;有一个特殊的命令 &amp;lsquo;zap&amp;rsquo; 可以让 OpenRC &amp;lsquo;忘记&amp;rsquo; 服务已启动;这对于将崩溃的服务重置为 Stopped 状态非常有用，而无需调用服务脚本的（可能已损坏的）Stop 函数。&lt;/p&gt;&#10;&lt;p&gt;在没有任何参数的情况下调用 &amp;lsquo;openrc&amp;rsquo; 将尝试重置所有服务，以便满足当前运行级别;如果您手动启动Apache，它将被停止，如果Squid死亡但处于当前运行级别，它将重新启动。&lt;/p&gt;&#10;&lt;h2 id="openrc运行级别"&gt;OpenRC运行级别&lt;/h2&gt;&#10;&lt;p&gt;OpenRC 有一个运行级别的概念，类似于&lt;code&gt;sysvinit&lt;/code&gt;提供的功能。运行级别基本上就是一组需要启动的服务集合。它们不是用随机的数字来命名，而是有具体的名称，用户如果需要也可以创建自己的运行级别。例如，可以定义一个启用了“everything”的默认运行级别，以及一个禁用了一些服务的“powersaving”运行级别。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;rc-status&lt;/code&gt;工具会打印出所有当前活动的运行级别以及其中服务的状态：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# rc-status&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2&lt;/span&gt;&lt;span&gt; * Caching service dependencies ... &lt;span style="color:#666"&gt;[&lt;/span&gt; ok &lt;span style="color:#666"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3&lt;/span&gt;&lt;span&gt;Runlevel: default&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4&lt;/span&gt;&lt;span&gt; modules &lt;span style="color:#666"&gt;[&lt;/span&gt; started &lt;span style="color:#666"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5&lt;/span&gt;&lt;span&gt; lvm &lt;span style="color:#666"&gt;[&lt;/span&gt; started &lt;span style="color:#666"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;所有运行级别都以文件夹的形式存在于 &lt;code&gt;/etc/runlevels/&lt;/code&gt; 中，其中包含指向实际服务脚本的符号链接。&lt;/p&gt;</description></item></channel></rss>