Fedoraには「systemctl」と「service」スクリプトがあります。サービスが内部でsystemctl
を呼び出しているようです。では、Fedoraでsystemctl
またはservice
機能を介してサービスを開始または停止する正しい/正しい方法は何ですか?覚えておくべきニュアンスがあるのでしょうか?
Fedora(最新バージョン)でサービスを停止/開始する方法は、systemctl
を使用することです。
ただし、service
コマンドで制御できるいくつかのサービスが/etc/init.d/
に残っている可能性があります。 systemctl
は自動的にユニットファイルにマップするため、systemd
を使用してそれらを制御することもできます。
たとえば、私のCentOS 7(Fedora 19など)には、service
コマンドで制御できる/etc/rc.d/init.d/network
スクリプトがあります。代わりにsystemctl
を使用しても、引き続き機能します。
# Sudo systemctl status network
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: active (exited) since Tue 2014-11-11 08:21:51 GMT; 2 weeks 1 days ago
ご覧のとおり、それはsystemd
によって/etc/rc.d/init.d/network
にマップされており、systemctl
コマンドがそれを制御します。
私は「昨年」になり、代わりにservice
を使用できます。
# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0
どちらも機能しますが、status
コマンドで異なる結果が得られることに注意してください。
通常、service
スクリプトはsystemctl(Systemd)スクリプトにリダイレクトされるので、基本的には使用する設定です。
私のFedora 20システムから。
$ service sshd status
Redirecting to /bin/systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Fri 2014-11-21 09:12:10 EST; 5 days ago
Main PID: 1095 (sshd)
CGroup: /system.slice/sshd.service
└─1095 /usr/sbin/sshd -D
Nov 21 09:12:10 dufresne systemd[1]: Starting OpenSSH server daemon...
Nov 21 09:12:10 dufresne systemd[1]: Started OpenSSH server daemon.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on 0.0.0.0 port 22.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on :: port 22.
古い習慣はなかなか死なないので、私は一般的に両方の方法を使います。しかし、もしあなたがSystemdの世界に適応しようとしているなら、私は可能な限りsystemctl
を使用して自分に強制するつもりです。
また、Systemdは、chkconfig
とservice
で使用していたすべてのことを1つのコマンドsystemctl
で実行できるため、一般的には長期的に対処する方が簡単です。
FedoraプロジェクトのWebサイトにあるこのチートシートは、切り替えを行う際に役立ちます。
ちなみに、元の質問に対する回答は、そのページの脚注で回答されています。
上記のすべての/ sbin/serviceおよび/ sbin/chkconfig行はsystemdで引き続き機能し、必要に応じて同等のネイティブに変換されることに注意してください。唯一の例外はchkconfig --listです。