CentOS 7.1を1台のサーバーにインストールしましたが、systemctl
がservice
と比較してどのように機能するのか混乱しています。
CentOS 6では、service
を実行すると次のようなフィードバックが得られます。
root@centos6 [~]# service mysql restart
Shutting down MySQL........................................[ OK ]
Starting MySQL.............................................[ OK ]
root@centos6 [~]# service mysql status
MySQL running (910285) [ OK ]
root@centos6 [~]#
ただし、CentOS 7では、systemctl
を使用すると何も表示されません。何が起こったのか、あるいは何かが起こったのかわかりません。
root@centos7 [~]# systemctl restart mysql
root@centos7 [~]# /bin/systemctl restart mysql.service
# Nothing happened
そして、CentOS 7でservice
を実行すると、次のようになります。
root@centos7 [~]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service
何が欠けていますか?
他の優れたUNIXコマンドと同様に、systemctl
は、問題が発生した場合、または明示的に出力が必要なコマンドを実行した場合を除いて、何も出力しません。何も表示されない場合、コマンドは成功しています。
必要に応じて、systemctl status mysql
を実行して現在のステータスを確認できます。
これが私がすることです:
systemctl start my-service && journalctl -fexu my-service
journalctl
は、systemdサービスから出力を取得する最も簡単な方法です。
-f
は、私が終了するまで(ctrl-C)、my-service
のログ出力に従います。-e
は、最後(最新)のログメッセージまでスクロールします。-x
説明(ある場合)。-u
は、my-service
ユニットからのログのみを表示します。