[리눅스] systemd

이정훈·2023년 2월 6일
0

리눅스

목록 보기
12/21

systemd란?

  • 리눅스를 부팅하면 각종 프로그램들을 제어하고 관리하는 프로그램
  • 서버를 실행할 때 systemd를 거쳐 가게되면 서버가 잘 작동하는 지 확인이 가능하닽
  • 명령어로 잘못된 부분을 확인할 수 있다.
  • 이 친구로 관리하자!
  • init 프로세스는 단계적으로 런 레벨을 올려가며 해당 런 레벨의 rc 스트립트를 차례대로 실행해준다.
    하지만 init은 아주 오래전 리눅스에서 사용하던 아주 오래된 프로세스였고 이에 계속해서 기능이 추가되면서 프로그램들이 복잡해지다보니 효율 또한 떨어지게 되었다.
    이에 systemd는 init의 단접을 보완하며 기존 리눅스의 의존성을 해치지 않도록 개발되었다.
  • systemd는 가능한 한 병렬로 시작 프로그램들을 실행시키는 것으로 부팅 속도를 끌어올려준다. 실행을 위한 파일을 쉘 스크립트가 아닌 service라는 systemd만의 unit을 통해 체계적이면서 가독성이 좋도로 개발이 되었다.
  • systemd는 단지 init 뿐만아니라 다른 프로그램들의 기능마저 대체한다.

systemd unit

  • systemd는 전체 시스템을 시작하고 관리하는 데 units이라 부르는 구성 요소를 사용한다
  • systemd는 관리 대상의 이름을 '서비스 이름, 유닌 종류'의 형태로 관리
  • 유닛은 같은 이름과 종류로 구성된 설정 파일과 동일한 이름을 사용한다.
  • service : 데몬의 시작, 종료, 재시작 담당
    클라우드 관련 프로그램을 다루기 때문에 클라우드 엔지니어는 데몬시스템쪽를 잘 다뤄줘야 한다!

systemd 명령어

systemctl

  • stytemctl [옵션][명령] [유닛 이름]]
  • 유닛은 작성하지 않아도 된다
  • 옵션
    a : 상태와 관계없이 유닛 전체를 출력
    t : 지정한 유닛만을 출력
  • 명령
    start : 유닛을 시작
    stop : 정지
    relod : 설정파일을 다시 읽기
    restart : 재시작
    staus : 현재상태확인
    enable : 부팅 시 유닛이 자동으로 시작되도록 설정
    disable : 부팅 시 유닛이 자동으로 시작되지 않도록 설정

q를 누르면 꺼진다

부팅 했을 때 실행되는 프로그램 목록
systemdctl list-units-files | grep enabled

systemd로 관리하되는 유닛 목록
systemctl list-units --type service --all
(all을 붙이면 종료되어있는 것들도 보여진다)

profile
싱숭생숭늉

0개의 댓글