質問: [概要] 設計書を書くにあたり、以前のchkconfig --list にて確認していたフォーマットに合わせて、targetごとのサービス起動設定をマトリックス表として作成する必要があります。 [環境] RHEL7.2 [困っていること] systemdでは/lib/systemd/system配下にあるファイルに起動設定が書いてあると調査の中で理解したのですが、確認方法についてご教示頂きたく投稿しました。 下記が実行したコマンドです。 cd /lib/systemd/system grep WantedBy=multi-user ./*.service grep WantedBy=graphical.target ./*.service grep WantedBy=rescue.target ./*.service multi-userはそれなりにリストが出てきたのですが、graphicalは5行ほどしか出力されず、rescueに至っては0でした。 どのようにしたら、ターゲットごとのサービス起動が確認できますか。 よろしくお願いいたします。
回答: systemdにはランレベルの概念がなく、より細かい「ターゲット」の概念を用います。従来のランレベルに対応するsystemdのターゲットは、大体次の表の通りです。 | ランレベル | ターゲット | | --- | --- | | 0 | poweroff.target | | 1 | rescue.target | | 2 | multi-user.target | | 3 | 同上 | | 4 | 同上 | | 5 | graphical.target | | 6 | reboot.target | たとえば、multi-user.target (従来のランレベル2、3、4に相当) に依存している (従来なら、そのランレベルに達したときに起動される) サービスの一覧を取得するには、次のように実行します。 ``` systemctl list-dependencies multi-user.target ``` 結果のうち「`.service`」がつくものがサービスと考えてかまいません。各サービスの詳細を知りたければ、たとえば`crond.service`なら次のように実行します。 ``` systemctl status crond.service ``` (2/27追記) systemdの基本的な概念や使いかたは、Red Hatの次の資料に解説されていますので、ひと通り読んでみて下さい。SysV initスクリプトとSystemdを比較して違いを説明しています。 * 『Red Hat Enterprise Linux 7 システム管理者のガイド』「第9章 Systemdによるサービス管理」 読んでみて、わからないことがあれば、あらためてご質問下さい。