Upstart 是一个基于事件的初始化系统,用于某些 upstart linux 发行版,以在系统启动和运行时管理服务和任务。它通过一套作业(jobs)和事件(events)来运作。虽然追踪每个事件的来源可能很复杂,通常需要您检查 /etc/init 中的作业配置文件,但更常见的是您需要直接从命令行管理这些作业。initctl 实用程序为此目的提供了一套命令。
查看作业状态
要查看所有已知 Upstart 作业及其当前状态的列表,请使用 list 命令。
initctl list
shutdown stop/waiting
console stop/waiting
...
输出显示作业名称、其目标(goal)和当前状态。在示例 shutdown stop/waiting 中,作业名称是 shutdown,其目标是 stop,当前状态是 waiting。当您与它们交互时,作业状态和目标将会改变。
要检查特定作业的状态,请使用 status 命令。
initctl status networking
networking start/running
手动控制作业
虽然 /etc/init 中的作业配置文件定义了作业如何启动、停止以及如何与事件交互,但您可以使用 initctl 手动覆盖这些操作。这对于故障排除或执行管理任务非常有用。
要手动启动一个作业:
sudo initctl start networking
要手动停止一个作业:
sudo initctl stop networking
要手动重启一个作业,这是停止然后启动它的便捷快捷方式:
sudo initctl restart networking
发出自定义事件
Upstart 作业由事件触发。您也可以手动“发出”(emit)一个事件,这对于触发自定义作业或用于测试目的非常有用。任何配置为在 some_event 上启动的作业都将由以下命令触发。
sudo initctl emit some_event