F.2.5. 工作定義

先前,sysvinit 套件為預設配置提供了 init daemon。當系統啟動後,這個 init daemon 將會執行 /etc/inittab script 來啟動為各個 runlevel 所定義的系統程序。預設配置現在使用了一個由 upstart 套件所提供、事件導向的 init daemon。每當特定事件發生時,init daemon 便會處理儲存於 /etc/event.d 目錄中的工作init daemon 會將系統的啟動程序視為此類型事件。
各項工作皆指定了一項程式,以及會使 init 執行或停止程式的事件。有些工作會被建立為任務(tasks),它會執行動作然後終止,直到另一個事件再次啟動了工作。其它工作則被建立為服務(services),init 將會持續執行直到另一個事件(或使用者)將它停下。
比方說,/etc/events.d/tty2 工作是一項服務,專門用來維護 tty2 上的虛擬終端機,這段時間包括從系統被啟動,直至系統被關閉,或是當另一事件(如更換 runlevel)將工作停下時。工作會被建立成當虛擬終端機在非預期的情況下停止時,init 將會重新啟動該虛擬終端機:
# tty2 - getty
#
# This service maintains a getty on tty2 from the point the system is
# started until it is shut down again.

start on stopped rc2
start on stopped rc3
start on stopped rc4
start on started prefdm

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
exec /sbin/mingetty tty2