CentOS systemctl과 service 명령어 차이점이 궁금해서 조사

$ service iptables start
$ systemctl start iptables
두가지 구문 중 어떤걸 수행하여도 구동된다는 결과는 똑같은 것 같은데, 차이점이 궁금해서 시작

일단 결론은
CentOS 6이전 버전은 service~구문으로,
CentOS 7이후 버전은 systemctl~ 구문으로 제어한다.

7버전에서 service~ 구문을 수행하면 
Redirecting to /bin/systemctl start xxxx.service 라며
어짜피 systemctl로 redirecting되어 찾는다.

이는 CentOS 6이전 버전은 /etc/rc.d/init.d 에서 서비스들을 관리했으나
7버전 이후로 이 서비스 관리 스트립트들은 서비스 유닛(Unit)으로 변경되었다. 몇몇 서비스는 제외
변경된 서비스 유닛은 .service로 끝나는 파일이며 systemctl로 제어된다.

결론은 CentOS7에서는 systemctl로 서비스들을 제어
systemctl 옵션 서비스명.service~ (.service는 생략가능)

참고로 
systemctl enable/disable 서비스명
이건 서비스 자동시작 활성화/비활성화 (기존 chkconfig) 기능이다.



**
(나의 삽질 내역)
CentOS7에서 iptables라는 응용프로그램을 사용해보고자 하여,
iptables --version으로 화인해보면 설치된것으로 보이는데
service iptables start 구문이 먹히지 않았다.

내가 뭔가 잘못한건가 해서 
무작정 yum으로 iptables를 재설치 하니 service 구문이 먹혔다.
이제 보면 yum으로 설치되면서 service에 자동으로 등록되어 centos7에서도 service 구문이 사용이 되었던 것 같다.



[참고]


  1. SADDY 2018.01.23 22:54

    배우고갑니다

  2. 엽기토끼이요 2020.06.22 08:29 신고

    감사합니다.

+ Recent posts