Linuxのサービスを起動するための/etc/init.dはもう既に過去の遺物と化している。現在は、systemctlをほとんどの大手ディストリビューションでは採用。

systemctlでは、/etc/systemd/systemの配下にUnitと呼ばれる定義ファイルを配置する。ここにで、どの起動モードにより起動するサービスかをディレクトリでわかりやすく分けている。

multi-user.target.wantsディレクトリをのぞいてみると、multi-userモードの際に起動したいサービスのUnitが配置されている。

この各Unitファイルの実態は、インストールされたプロダクツにもよるが大体のものの実体は/lib/systemd/systemあたりに配置されている。

Uintの記述はこんな感じ...

[Unit]
Description=GitLab Runit supervision process
After=basic.target

[Service]
ExecStart=/opt/gitlab/embedded/bin/runsvdir-start
Restart=always

[Install]
WantedBy=basic.target

このUnitファイルを配置した段階で、systemctlは自分が処理するサービスを認識してくれる。この状態を確認するには…

# systemctl list-unit-files -t service

サービスが有効になっているものは...

# systemctl list-unit-files -t service | grep enabled

サービスが無効になっているものは...

# systemctl list-unit-files -t service | grep disabled

サービスの有効無効を切り替えるには

# systemctl enable サービス名[.service]
または
# systemctl disableサービス名[.service]

[.service]は省略可能。

サービスの起動・停止は...

# systemctl start サービス名[.service]
または
# systemctl stop サービス名[.service]
または
# systemctl restart サービス名[.service]

サービスの状態は...

# systemctl status サービス名[.service]

Linuxってのは、新しいものをどんどん試してるOSであって枯れたOSじゃない。てなことで、こういうシステム管理の方法はどんどん新しくなっていくので流行に出遅れないように気を付けよう!

ちなみに、ifconfigももうないのだよ(笑)

$ ip addr