Ubuntu 13.04
Sponsored Link

サービス/ジョブの管理2013/04/27

 
システム起動時に起動されるサービス/ジョブの管理です。
Upstart で管理されるものと SysVinit で管理されるものがあり、それぞれ設定方法が異なります。
[1] Upstart で管理される現在のジョブの状態をリストするには以下のようにします。
「start/running」となっているものが起動時に実行されます。 さらに「process ***」となっているものはデーモンとして常駐しているものとなります。
root@dlp:~#
initctl list

mountall-net stop/waiting
mountnfs-bootclean.sh start/running
passwd stop/waiting
rc stop/waiting
rsyslog start/running, process 1021
screen-cleanup stop/waiting
tty4 start/running, process 1079
udev start/running, process 429
upstart-udev-bridge start/running, process 423
.....
.....
[2] Upstart で管理される各ジョブの設定ファイルは「/etc/init」配下に配置されています。 この設定ファイルでジョブの起動を制御します。
例えば、「atd」を停止させ、システム起動時にも起動させないようにするには、以下のようにします。
root@dlp:~#
initctl stop atd

atd stop/waiting
root@dlp:~#
vi /etc/init/atd.conf
# コメントにする

#
start on runlevel [2345]
[3] Upstart で管理されるシステム起動時に起動されるジョブ一覧は 以下のように grep してみると分かります。 また「start on ~」に続く意味は「man upstart-events」で確認することができます。
root@dlp:~#
grep "start on" /etc/init/*

/etc/init/acpid.conf:start on runlevel [2345]
/etc/init/apport.conf:start on runlevel [2345]
/etc/init/atd.conf:#start on runlevel [2345]
/etc/init/bootmisc.sh.conf:start on virtual-filesystems
/etc/init/checkfs.sh.conf:start on mounted MOUNTPOINT=/
/etc/init/checkroot-bootclean.sh.conf:start on mounted MOUNTPOINT=/
/etc/init/checkroot.sh.conf:start on mounted MOUNTPOINT=/
/etc/init/console.conf:start on stopped rc RUNLEVEL=[2345] and container CONTAINER=lxc
/etc/init/console-font.conf:start on starting plymouth-splash
.....
.....

root@dlp:~#
man upstart-events

Table 1: Well-Known System Events Summary.

┌────┬──────────────────────────┬──────┬──────┬────────────────────────┬──────┐
│Ref │          Event           │ Type │ Emit │          Time          │ Note │
├────┼──────────────────────────┼──────┼──────┼────────────────────────┼──────┤
│    │ all-swaps                │  S   │  M   │ > (5)                  │      │
│    │ control-alt-delete(7)    │  S   │  A   │ > (5)                  │  A   │
│    │ container                │  S   │  C   │ > /run mounted         │  Q   │
│    │ dbus-activation          │  S   │  B   │ > D-Bus client request │      │
│    │ deconfiguring-networking │  H   │  V   │ < non-local IFs down   │  P   │
│    │ desktop-session-start    │  H   │  D   │ > X(7) session created │  B   │
│    │ desktop-shutdown         │  H   │  D   │ > X(7) session ended   │  O   │
│    │ device-not-ready         │  H   │  M   │ > (2)                  │  N   │
│    │ drm-device-added         │  S   │  U   │ > (5)                  │  C   │
│    │ failsafe-boot            │  S   │  X   │ > (7) and local IF     │  S   │
│    │ file                     │  S   │  K   │ > (1)                  │  U   │
│ 7  │ filesystem               │  S   │  M   │ After last (1)         │  D   │
│    │ graphics-device-added    │  S   │  U   │ > (5)                  │  C   │
│    │ keyboard-request(7)      │  S   │  A   │ > (5)                  │  E   │
│    │ local-filesystems(7)     │  S   │  M   │ > (6)                  │      │
│    │ login-session-start      │  H   │  D   │ < DM running           │  F   │
│ 1  │ mounted(7)               │  H   │  M   │ > associated (2)       │  G   │
│ 2  │ mounting(7)              │  H   │  M   │ > (5)                  │  H   │
│ 3  │ net-device-added         │  S   │  U   │ > (5)                  │  C   │
│    │ net-device-changed       │  S   │  U   │ > (5)                  │  C   │
│    │ net-device-down          │  S   │  F   │ < (4)                  │  C   │
│ 4  │ net-device-removed       │  S   │  U   │ > (5)                  │  C   │
│    │ net-device-up            │  S   │ F,N  │ > (3)                  │  C   │
│    │ not-container            │  S   │  C   │ > /run mounted         │  Q   │
│    │ power-status-changed(7)  │  S   │  I   │ > (5)                  │  I   │
│    │ recovery                 │  S   │  G   │ Boot (<5)              │  R   │
│    │ remote-filesystems(7)    │  S   │  M   │ > (6)                  │      │
│    │ runlevel(7)              │  M   │  T   │ > (7) + (8)            │      │
│    │ socket(7)                │  S   │  S   │ > socket connection    │      │
│ 5  │ startup(7)               │  S   │  I   │ Boot                   │  J   │
│    │ started(7)               │  S   │  I   │ > job started          │  K   │
│    │ starting(7)              │  H   │  I   │ < job starts           │  K   │
│ 8  │ static-network-up        │  S   │  N   │ > last static IF up    │      │
│    │ stopped(7)               │  S   │  I   │ > job stopped          │  K   │
│    │ stopping(7)              │  H   │  I   │ < job stops            │  K   │
│    │ unmounted-remote-        │  H   │  V   │ >   last   remote   FS │  L   │
│    │ filesystems              │      │      │ unmounted              │      │
│ 6  │ virtual-filesystems(7)   │  S   │  M   │ > last virtual FS (1)  │  M   │
└────┴──────────────────────────┴──────┴──────┴────────────────────────┴──────┘

Table 2: Well-Known User Events Summary.

┌────┬──────────────────┬──────┬──────┬─────────────────────────────────┬──────┐
│Ref │      Event       │ Type │ Emit │              Time               │ Note │
├────┼──────────────────┼──────┼──────┼─────────────────────────────────┼──────┤
│    │ desktop-end(7)   │  S   │  J   │ < (2)                           │      │
│    │ desktop-start(7) │  H   │  J   │ > (3)                           │      │
│    │ file             │  S   │  K   │ > (1)                           │  U   │
│ 2  │ session-end(7)   │  M   │  I   │ < Session Init end              │      │
│ 1  │ startup(7)       │  S   │  I   │ > Session Init start            │  J   │
│    │ :sys:*           │  S   │  E   │ > upstart-event-bridge(8) start │      │
│ 3  │ xsession         │  M   │  H   │ > (1)                           │  T   │
└────┴──────────────────┴──────┴──────┴─────────────────────────────────┴──────┘

Table 3: Event Types.

┌────┬────────────┬───────────────────────────────┐
│Ref │ Event Type │ Notes                         │
├────┼────────────┼───────────────────────────────┤
│ H  │ Hook       │ Blocking.  Waits  for  events │
│    │            │ that start on or stop on this │
│    │            │ event.                        │
│ M  │ Method     │ Blocking task.                │
│ S  │ Signal     │ Non-blocking.                 │
└────┴────────────┴───────────────────────────────┘

Table 4: Event Emitters.

┌────┬──────────────────────────────────┬─────────────────────────────────┐
│Ref │ Emitter                          │ Notes                           │
├────┼──────────────────────────────────┼─────────────────────────────────┤
│ A  │ System Administrator (initiator) │ Technically emitted by init(8). │
│ B  │ dbus-daemon(1)                   │ Run with "--activation=upstart" │
│ C  │ container-detect job             │                                 │
│ D  │ Display Manager                  │ e.g. lightdm/gdm/kdm/xdm.       │
│ E  │ upstart-event-bridge(8)          │                                 │
│ F  │ ifup(8) or ifdown(8)             │ See /etc/network/.              │
│ G  │ bootloader or initramfs          │                                 │
│ H  │ xsession-init session job        │                                 │
│ I  │ init(8)                          │ Either PID 1 or a Session Init. │
│ J  │ job that starts desktop          │ gnome-session job for Ubuntu.   │
│ K  │ upstart-file-bridge(8)           │                                 │
│ M  │ mountall(8)                      │                                 │
│ N  │ network-interface job            │                                 │
│ S  │ upstart-socket-bridge(8)         │                                 │
│ T  │ telinit(8), shutdown(8)          │                                 │
│ U  │ upstart-udev-bridge(8)           │                                 │
│ V  │ System V init system             │                                 │
│ X  │ failsafe job                     │                                 │
└────┴──────────────────────────────────┴─────────────────────────────────┘

Table 5: Event Summary Notes.

┌─────┬─────────────────────────────────────────────────────────────────┐
│Note │ Detail                                                          │
├─────┼─────────────────────────────────────────────────────────────────┤
│ A   │ Requires administrator to press Control-Alt-Delete key combina‐ │
│     │ tion on the console.                                            │
│ B   │ Event generated when user performs graphical login.             │
│ C   │ These are specific examples. upstart-udev-bridge(8)  will  emit │
│     │ events  which  match the pattern, "S-device-A" where 'S' is the │
│     │ udev subsystem and 'A' is the udev action. See udev(7) and  for │
│     │ further  details.  If  you  have sysfs mounted, you can look in │
│     │ /sys/class/ for possible values for subsystem.                  │
│ D   │ Note this is in the singular - there is no 'filesystems' event. │
│ E   │ Emitted when administrator presses Alt-UpArrow key  combination │
│     │ on the console.                                                 │
│ F   │ Denotes Display Manager running (about to be displayed), but no │
│     │ users logged in yet.                                            │
│ G   │ Generated for each mount that completes successfully.           │
│ H   │ Emitted when mount attempt for single entry from  fstab(5)  for │
│     │ any filesystem type is about to begin.                          │
│ I   │ Emitted when Upstart receives the SIGPWR signal.                │
│ J   │ Initial event (system or Session Init).                         │
│ K   │ Although the events are emmitted by init(8), the instigator may │
│     │ be initctl(8) if a System Administrator has manually started or │
│     │ stopped a job.                                                  │
│ L   │ /etc/init/umountnfs.sh.                                         │
│ M   │ Emitted when all virtual filesystems (such as /proc) mounted.   │
│ N   │ Emitted  when the --dev-wait-time timeout is exceeded for moun‐ │
│     │ tall(8).  This defaults to 30 seconds.                          │
│ O   │ Emitted when the X(7) display  manager  exits  at  shutdown  or │
│     │ reboot, to hand off to the shutdown splash manager.             │
│ P   │ Emitted  by  /etc/init.d/networking  just prior to stopping all │
│     │ non-local network interfaces.                                   │
│ Q   │ Either 'container' or 'not-container' is emitted (depending  on │
│     │ the environment), but not both.                                 │
│ R   │ Emitted  by  either  the  initramfs  or bootloader (for example │
│     │ grub) as the initial event (rather than startup(7))  to  denote │
│     │ the  system has booted into recovery mode. If recovery was suc‐ │
│     │ cessful, the standard startup(7) event is then emitted,  allow‐ │
│     │ ing the system to boot as normal.                               │
│ S   │ Emitted  to  indicate  the system has failed to boot within the │
│     │ expected time. This event will trigger other jobs  to  forcibly │
│     │ attempt to bring the system into a usable state.                │
│ T   │ Only emitted for a graphical session.                           │
│ U   │ See file-event(7).                                              │
└─────┴─────────────────────────────────────────────────────────────────┘
[4] 上記 Upstart で管理されていないものは SysVinit で管理されています。 例えば NTP がそれに該当します。 SysVinit で管理されるものは 以下のように RedHat の chkconfig ライクな管理ツールをインストールすることで管理しやすくなります。
root@dlp:~#
aptitude -y install sysv-rc-conf
root@dlp:~#
sysv-rc-conf --list
# サービス一覧表示
root@dlp:~#
sysv-rc-conf ntp on
# NTP の自動起動を ON

root@dlp:~#
sysv-rc-conf ntp off
# NTP の自動起動を OFF

関連コンテンツ