systemctl覚書
はい皆さんこんにちは
筆者は今までsystemctlにあまり触っておらず、
言うてserviceコマンドと同じやろと思っていたおじさんが改心したお話です。
前提
まずsystemctlもといsystemdとは何か。
CentOS7またはRHEL7から実装されている自動起動デーモン。
それ以前は何だったかと言うとinitdだったわけです。
/etc/init.d/... に起動停止スクリプトが置かれていました。
この時代に戻りたい
そしてこれを呼び出すコマンドがserviceなわけです。
systemdは
/usr/lib/systemd/... に設定ファイルが置かれています。
スクリプトではなくて設定ファイルですね。
そしてこれを呼び出すコマンドがsystemctlなわけです。
##起
ここまでは何となく知識としてあったのですが、
ある時人の作った設計書のサービス欄を見て不思議な情報が書いてありました。
|UNIT FILE|STATE|
|---|---|---|
|dbus.socket|static|
これは一体なにかと。
##承
早速調べるために次のコマンドを打ちました。
systemctl list-unit-files -t service --no-pager
しかしこのコマンドでは結果は含まれませんでした。
ここで初めてmanを見ました。ええ初めてですよ。
要点をまとめると、
-tは、 service 以外に socketが選べる。(これ以外にもmountとか選べます)
ユニットをリストする時に、引数の1つがユニットタイプである時は、そのユニットタイプだけを表示する。そうでないときは、すべてのユニットタイプを表示する。
##転
というわけで次のコマンドの結果を見ると、「dbus.socket」が見れました。
systemctl list-unit-files
この場合は全てのユニットタイプが表示されています。
ちなみにsocketのファイルでは待ち受けポート番号の設定も出来ます。
なんでおじさんはスグにちなんじゃうのか
では何故この情報が設計書に書かれていたのかと言うと、
恐らく「chkconfig --list」の結果表示される、
systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。
をそのまま打ったんじゃないかな。。。という結論になりました。
##結
設計書は修正したのですが、おじさんは一つ賢くなれたなと。
今まで疎遠だったsystemctlと少しだけ仲良くなれた気がします。
まぁ正直自分が設計書を作ったとしても全く同じ道を歩んでいたと思うと
ここで気づけて良かったなと改心しました。
ありがとうございました。