Fedoraには「systemctl」と「service」スクリプトがあります。サービスが内部的に呼び出されるようですsystemctl
。もしそうなら、Fedorasystemctl
または施設を介してサービスを開始または停止する正しい/適切な方法は何ですかservice
?覚えておくべきニュアンスはありますか?
答え1
Fedora(およびそれ以降のバージョン)でサービスを停止/開始する方法はsystemctl
。
/etc/init.d/
ただし、コマンドを使用して制御できるいくつかのサービスが残っている可能性がありますservice
。ユニットファイルに自動的にマッピングしてsystemctl
制御できます。systemd
たとえば、私のCentOS 7(Fedora 19以降)には、コマンドを使用して制御/etc/rc.d/init.d/network
できるスクリプトがありますservice
。以下を使用しても動作します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
ご覧のように、マップされており、コマンド/etc/rc.d/init.d/network
はそれを制御します。systemd
systemctl
私はこのように「持続」し、次を使うことができますservice
。
# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0
どちらも機能しますが、status
コマンドは異なる結果を提供します。
答え2
通常、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
1つのservice
コマンドにインポートするため、通常はsystemctl
長期的に処理するのが簡単です。
FedoraプロジェクトのWebサイトにあるこのチートシートは、移行に役立ちます。
ただし、元の質問に対する回答はこのページの脚注に記載されています。
上記のすべての/sbin/serviceおよび/sbin/chkconfig行はsystemdで動作し続け、必要に応じてデフォルトの対応する行に変換されます。唯一の例外はchkconfig --listです。