はじめに
CentOS7になり、サービスの管理するシステムが"System V系のinit"から"Systemd"に変わったため、今までのように/etc/rc.d/init.d/sshd restart
を実行することができなくなりました。
Systemdでサービスを管理できるようになるために、私が使うコマンドを中心にまとめていきます。
※ちなみに、serviceコマンドは今まで通り使える模様(systemctlへリダイレクトしてるけど)。
サービスの起動・終了
今まで/etc/rc.d/init.d/sshd restart
とやっていたsshdの再起動は、systemctl restart sshd.service
となる。
調べていると、systemctl restart sshd
と書いてあるところもありますが、1番最後の引数はUnit名を入れるという事になっているため、サービス名ではなくUnit名である"sshd.service"を指定すべきである。
(Unitについては、Google先生に聞いてください)
サービスの起動はsystemctl start sshd.service
、終了はsystemctl stop sshd.service
と、systemctlとUnit名の間にやりたいことを入れればOKです。reloadについてはUnitに記載されていれば使えるとのこと。
サービス一覧と自動起動設定の確認
サービスの自動起動設定を確認するときに使っていたchkconfig --list
は、systemctl list-unit-files -t service
となる。
本当ならsystemctl list-unit-files
が対比的には正しいが、私の場合サービスだけを気にして使うと思うので、"-t service"を付けています。
STATEがenabledになっているのが自動起動有効のサービス。disabledは自動起動無効。staticは単体で自動起動設定ができないサービスとなる。
また、個別に確認したい場合は、systemctl status sshd.service
とすれば確認できる。
"Loaded:"が出力されている行の一番最後に書かれているenableかdisableで判別できます。
このコマンドでは、他にもサービスの状態などが確認できます。
自動起動の設定
chkconfig sshd on
に相当する自動起動の有効化はsystemctl enable sshd.service
となる。
chkconfig sshd off
に相当する自動機能無効化はsystemctl disable sshd.service
となる。
Logの出力方法
SystemV系のinitでは、"/var/log"配下にrsyslog経由で吐かれていたlogが、systemdではバイナリで保存されるので"journalctl"を使って見ることになる。
使い方としては、journalctl -u sshd.service
となる。
他にも、"-b"を付けると、直近の起動からのログだけにしたり、"-k"を付けてdmsegと同じ内容にしたり(エラーが赤く出るようになってるのでわかりやすくなってる)、"-f"を付けてtail -f
のようにリアルタイムな表示ができるようにと、それなりにオプションがあります。
おわりに
私が使う分ではこんな感じでしょう。
他にもSystemdになって変更になってる箇所がありますが、今回はピックアップしません。Google先生に聞いてください。