问题描述
是否有可用于 Upstart 的可用事件列表?
例如 start on local-filesystems
所以 local-filesystems 是一个事件,但它什么时候触发,还有哪些其他事件?
最佳答案
Manpages
从 Ubuntu 11.04 开始,James Hunt 创建了一个很棒的手册页,名为 usptart-events
,所以从终端运行:
man upstart-events
它也可以从 Ubuntu 在线联机帮助页 upstart-events 获得,但丢失了一些格式,因此对于相同信息的更好的在线资源来自 Upstart cookbook。
工作和事件的可视化
还有一个出色的工具,initctl2dot
,用于可视化暴发户事件。下面是使用该命令从 Ubuntu 12.04 生成图像的示例。
查看所有职位:
initctl2dot -o - | dot -Tpng -o upstart.png
仅查看 plymouth、lightdm 和 mountall 工作:
initctl2dot -r plymouth,lightdm,mountall -o - | dot -Tpng -o upstart2.png
grep 初始化
您还可以 grep
在以下目录中发出:
grep -r emit /etc/init /etc/init.d /etc/network/if*.d
这会给你大部分,其他的由 dbus 桥发出。
有关更多信息和最佳实践,请参阅 The Upstart Cookbook 。
次佳答案
这些事件由 upstart
本身或 mountall
发出,它们都有自己的 man
页面:
\\n
mounting mounted virtual-filesystems\\n local-filesystems all-swaps filesystem\\n remote-filesystems started starting\\n stopping stopped startup runlevel(7)
\\n
任何应用程序都可以发出自己的事件,例如通过
initctl emit suspend
其中一些你可以看到作为输出
grep emit /etc/init/*
更多信息也请访问:
http://netsplit.com/2008/04/27/upstart-05-events/