Fedora에는 "systemctl" 및 "service" 스크립트가 있습니다. 서비스가 내부적으로 호출되는 것 같습니다 systemctl
. 그렇다면 Fedora에서 systemctl
또는 시설을 통해 서비스를 시작하거나 중지하는 올바른/적절한 방법은 무엇입니까 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
하나의 service
명령 으로 가져오므 systemctl
로 일반적으로 장기적으로 처리하기가 더 쉽습니다.
Fedora 프로젝트 웹사이트에 있는 이 치트 시트는 전환에 도움이 될 수 있습니다.
그런데 원래 질문에 대한 답변은 이 페이지의 각주에 나와 있습니다.
위에 나열된 모든 /sbin/service 및 /sbin/chkconfig 줄은 systemd에서 계속 작동하며 필요에 따라 기본 해당 줄로 변환됩니다. 유일한 예외는 chkconfig --list입니다.