>  기사  >  운영 및 유지보수  >  Linux에서의 시스템 서비스 소개 - init, systemd

Linux에서의 시스템 서비스 소개 - init, systemd

齐天大圣
齐天大圣원래의
2020-11-10 09:54:362444검색

우리는 서비스(service)와 데몬(daemon)이라는 단어를 자주 듣습니다. 그들 사이에 차이점과 연관성이 있습니까? Linux의 서비스는 메모리에 상주하며 일부 시스템 또는 네트워크 기능을 제공할 수 있는 프로그램입니다. 데몬을 문자 그대로 번역하면 데몬 프로세스 또는 백그라운드 프로세스입니다. 따라서 서비스와 데몬을 구별하지 않고 동일한 것으로 간주할 수 있습니다.

Early init 관리 메커니즘

centOS6에서는 init 서비스 관리 메커니즘이 계속 사용되었습니다. centOS7에서도 여전히 사용할 수 있는 기능이 있으므로 간략하게 소개하겠습니다. 주로 다음 기능을 살펴보세요.

서비스 시작, 종료 및 상태 확인 등

  • 서비스 시작: /etc/init.d/nginx start

  • 서비스 다시 시작: /etc/init .d/ nginx restart

  • 서비스 닫기: /etc/init.d/nginx stop

  • 상태 확인: /etc/init.d/nginx status

서비스 시작 방법

  • 독립적으로 시작: 일반적인 mysqld, php-fpm, nginx, httpd 및 기타 서비스와 같은 대부분의 서비스는 이 모드를 채택합니다.

  • 슈퍼 데몬에 의해 호스팅 및 시작: 이러한 서비스의 시작은 다른 서비스에 의해 호스팅됩니다. 이러한 서비스를 호스팅하는 서비스를 슈퍼 데몬이라고 합니다. Linux에는 0, 1, 2, 3, 4, 5, 6의 7가지 실행 수준이 있습니다. 일반적으로 사용되는 모드는

1 싱글 플레이어 유지 관리 모드

3 일반 텍스트 모드

  • 5 그래픽 모드

  • 각 실행 레벨의 시작 스크립트는 /etc/rc[0-6을 통해 이루어집니다. ].d /SNNdaemon은 /etc/init.d/daemon에 연결됩니다.

    ll /etc/rc3.d/S55nginx 
    lrwxrwxrwx 1 root root 15 Sep 21 11:30 /etc/rc3.d/S55nginx -> ../init.d/nginx
  • S는 시작을 의미하고 NN은 숫자를 의미합니다. 이 숫자는 숫자가 작을수록 먼저 실행됩니다. 이 실행 순서는 서비스 종속성을 잘 관리할 수 있습니다.
On -power 시작 서비스 自 start -starting: chkconfig on deamon

끄고 자체 시작 시작: Chkconfig OFF Deamon

서비스 활성화 여부 보기: chkconfig --list daemon
  • systemd 관리 메커니즘

  • centos7부터 이전 init 관리 메커니즘은 폐기되고 systemd로 대체되었습니다. 시스템 관리와 ​​무엇이 다른지 살펴보겠습니다.

  • 모든 서비스를 병렬로 처리하여 시작 프로세스 속도를 높입니다.

서비스를 하나씩 시작하는 init와 달리 systemd는 동시에 여러 서비스를 시작할 수 있습니다. 따라서 부팅 대기 시간이 크게 단축됩니다. 서비스 종속성 해결

예를 들어 서비스 B를 시작하려면 먼저 서비스 A를 시작해야 합니다. 이때 systemd를 사용하여 서비스 B를 시작합니다. 종속성을 자동으로 확인한 다음 서비스를 시작하기 전에 서비스 A를 시작합니다. B. 봉사하십시오.

unit type

init에 두 가지 시작 방법만 있는 독립 실행형 및 슈퍼 데몬과 비교하여 systemd는 통합 서비스 단위(단위)를 정의하고 단위는 서비스, 소켓, 대상, 경로, snapshot, 타이머 및 기타 여러 유형.

init 서비스 스크립트와 역호환 가능

/etc/inid.d/ 아래의 이전 서비스 시작 스크립트도 systemd를 통해 관리할 수 있습니다. 참고: /etc/init.d 디렉터리에서 서비스 시작 스크립트를 수동으로 시작하면 systemd는 서비스의 실행 상태를 감지할 수 없습니다.

# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (running) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago
……
# /etc/init.d/mysqld restart
Shutting down MySQL....                                    [  OK  ]
Starting MySQL.                                            [  OK  ]
[root@lijia ~]# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (exited) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago
……
init와 systemd에 관해서는 systemd를 마스터하는데 중점을 두고 init에 대한 이해도 필요합니다.

위 내용은 Linux에서의 시스템 서비스 소개 - init, systemd의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.