이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10964|회답: 8

[리눅스] Linux systemd 서비스 매니저가 자세히 설명되었습니다

[링크 복사]
게시됨 2021. 11. 28. 오전 10:02:32 | | | |
systemd는 리눅스 시스템을 위한 기본 구성 요소 집합입니다. 이 장치는 시스템 및 서비스 관리자를 제공하며, 나머지 시스템을 PID 1로 실행하고 시작합니다.

systemd는 강력한 병렬화 기능을 제공하며, 소켓과 D-버스 활성화를 통해 서비스를 시작하고, 주문형 데몬 시작을 제공하며, 리눅스 제어 그룹을 이용해 프로세스를 추적하고, 마운트 및 자동 마운트 지점을 유지하며, 잘 설계된 트랜잭션 의존성 기반 서비스 제어 로직을 구현합니다. systemd는 SysV와 LSB init 스크립트를 지원하며 sysvinit을 대체할 수 있습니다.

기타 섹션으로는 로그 데몬, 호스트명, 날짜, 로케이트 등 기본 시스템 구성 제어용 유틸리티, 로그인 사용자 목록 유지, 컨테이너 및 가상 머신 실행 관리, 시스템 계정, 런타임 디렉터리, 설정, 그리고 단순 네트워크 데몬 구성 관리, 네트워크 시간 동기화, 로그 전달, 이름 해석 등이 포함됩니다.

systemd 구성 파일은 다음 세 개의 폴더에 존재합니다:         

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。

/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。
복습:

Linux는 Systemd 서비스의 로그 출력을 확인합니다
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) 리눅스 노드를 추가하고 서비스로 등록합니다
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7은 Node 익스포터를 설치합니다
https://www.itsvse.com/thread-9969-1-1.html

부대 프로필

systemd의 유닛 파일은 systemd가 관리할 수 있는 서비스, 소켓, 장치 등 다양한 유닛에 대한 정보를 인코딩하는 파일입니다. 이 가이드는 서비스에 초점을 맞추고 있으며, 이 경우 우리가 다루는 유닛 파일은 .service 파일입니다. varnish.service 장치 구성 파일에는 systemd가 varnish 데몬을 어떻게 실행, 모니터링, 관리해야 하는지에 대한 정보가 포함되어 있습니다.

[Unit] 블록은 보통 구성 파일의 첫 번째 블록으로, 유닛의 메타데이터와 다른 유닛과의 관계를 정의하는 데 사용됩니다. 주요 필드는 다음과 같습니다.

  • 설명: 간단한 설명
  • 문서화: 문서의 주소
  • 필요: 현재 유닛이 의존하는 기타 유닛, 그리고 이들이 작동하지 않으면 현재 유닛이 시동이 걸리지 않습니다
  • 원함: 현재 유닛과 함께 작동하는 다른 유닛들, 만약 그들이 작동하지 않는다면, 현재 유닛이 실패하지 않습니다
  • BindsTo: Requires와 유사하게, 현재 유닛이 나가면 실행을 멈추게 하는 유닛을 지정합니다
  • 전: 이 필드에 지정된 유닛도 시작할 경우, 현재 유닛 다음에 시작해야 합니다
  • 후: 이 필드에 지정된 유닛도 시작할 경우, 현재 유닛보다 먼저 시작해야 합니다
  • 충돌: 여기서 지정한 유닛은 현재 유닛과 동시에 운영될 수 없습니다
  • 조건... : 현재 유닛이 실행되기 위해 충족해야 하는 조건들, 그렇지 않으면 실행되지 않습니다
  • 주장하다... : 현재 장치가 작동하기 위해 충족해야 하는 조건들, 그렇지 않으면 시작 실패가 보고됩니다

[설치]는 보통 설정 파일의 마지막 블록으로, 부팅 방법과 부팅 여부를 정의합니다. 주요 필드는 다음과 같습니다.

  • WantedBy: 그 값은 하나 이상의 Targets이며, 현재 유닛이 활성화(활성화)될 때, 심볼릭 링크는 /etc/systemd/system 디렉터리 아래 하위 디렉터리에 Target 이름 + .wants 접미사와 함께 배치됩니다
  • RequiredBy: 그 값은 하나 이상의 Targets이며, 현재 유닛이 활성화되어 있을 때 심볼링크는 /etc/systemd/system 디렉터리 아래 하위 디렉터리에 Target 이름 + .required 접미사와 함께 배치됩니다
  • 별칭: 현재 부대가 시작할 때 사용할 수 있는 별명입니다
  • 또한: 현재 유닛이 활성화되면 다른 유닛들도 동시에 활성화됩니다

[서비스] 블록은 서비스를 구성하는 데 사용되며, 서비스 유형의 유닛만 이 블록을 가집니다. 주요 필드는 다음과 같습니다.

  • 유형: 시작 시 프로세스의 동작을 정의합니다. 다음과 같은 값이 있습니다.
  • Type=simple: 기본 값으로, ExecStart가 지정한 명령을 실행하여 메인 프로세스를 시작합니다
  • type=forking: fork는 부모 프로세스로부터 자식 프로세스를 생성하며, 생성 직후 즉시 종료됩니다
  • Type=oneshot: 일회성 프로세스로, Systemd는 현재 서비스가 종료될 때까지 기다렸다가 실행을 계속합니다
  • 타입=dbus: 현재 운행은 D-버스를 통해 시작됩니다
  • type=notify: 현재 서비스가 시작되면 Systemd가 알림을 받고 실행을 계속합니다
  • type=idle: 현재 서비스는 다른 작업이 실행될 때만 실행됩니다
  • ExecStart: 현재 서비스를 시작하는 명령어
  • ExecStartPre: 현재 서비스를 시작하기 전에 실행된 명령
  • ExecStartPost: 현재 서비스 시작 후 실행된 명령
  • ExecReload: 현재 서비스가 재시작될 때 실행되는 명령어
  • ExecStop: 현재 서비스가 중단되었을 때 실행되는 명령어
  • ExecStopPost: 명령이 전달될 때 실행되는 명령을 멈춥니다
  • RestartSec: 자동 서비스가 현재 서비스를 재시작하는 사이의 초 단위
  • 재시작: Systemd가 현재 서비스를 자동으로 재시작하는 조건을 정의하며, 항상 (Ways), 성공 시(on-success), 실패 시(on-failure), 정상 시(on-abnormal), 중재(on-abort), 워치독 온(on-watchdog) 등의 가능한 값을 포함합니다
  • TimeoutSec: Systemd가 현재 서비스를 중단하기 전에 대기하는 초수를 정의합니다
  • 환경: 환경 변수를 지정하세요

Systemctl 관리 도구

CentOS의 프로그램 관리는 기본적으로 도구 systemctl에 의해 이루어집니다.

스타트업 서비스:

systemctl start name.service

서비스 중단:

systemctl stop, name.service

재시작 서비스:

systemctl restart name.service

상태 보기:

systemctl 상태 name.service

조건부 재시작:

서비스가 이전에 시작되었다면 재개되고, 서비스가 시작되지 않으면 운영되지 않습니다

systemctl try-restart name.service

재장전 또는 재시작:

먼저 재장전하고, 재장전이 실패하면 재부팅하세요

systemctl reload-or-restart name.service

재장전 또는 조건부 재시작:

systemctl reload-or-try-restart name.service

사용자가 상태를 시작하기 위해 서비스를 설정할 수 있는지 여부를 설정합니다

systemctl unmask name.service

systemctl 마스크 이름.서비스는 금지되어 있습니다

서비스의 현재 활성화 상태를 확인하세요:

서비스 시작 명령의 상태 반환 값은 0이며, 시작되지 않은 명령의 상태 반환 값은 0이 아닙니다.

systemctl is-active name.service

활성화된 모든 서비스를 확인하세요:

-t는 표시되는 유닛 유형을 지정합니다.

--모든 정보가 더 상세한 목록을 표시합니다.

-동등한 --모든

systemCTL 리스트-유닛

systemCTL list-units -t 서비스

systemctl list-units -t service -a

모든 서비스 보기:

systemCTL 리스트-단위 -a

모든 서비스 상태 보기:

systemctl list-unit-files

-a 、--all : 모든 서비스 상태 보기

-t 、--유형: 볼 단위의 유형을 지정합니다

loaded: 구성 파일이 로드되어 메모리에 로드되었습니다

활성(running): 한 번 이상 연속적으로 처리되는 런

active(exited): 일회성 설정이 성공적으로 완료됨

활성(대기): 달리기, 이벤트를 기다리고 있습니다

inactive:不运行

enabled:开机启动

disabled:开机不启动

static:开机不启动,但可被另一个启用的服务激活

서비스가 활성화되고 비활성화되는 운영 수준을 나열하는 데 사용됩니다

ls /etc/systemd/system/*.wants/sshd.service

systemCTL 리스트-유닛-파일 --타겟 --all

서비스가 시작되지 않도록 설정하려면:

systemctl 서비스 이름 유닛 비활성화

서비스가 부팅되고 시작되었는지 확인하세요:

systemctl is-enabled name.service

서비스 의존성을 살펴보세요:

SystemCTL list-dependencies Name.service
SystemCTL list-depebdencies

중량 적재 서비스:

systemctl 데몬-리로드

과정을 중단하세요:

systemCTL 프로세스 이름 종료

리소스:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.





이전의:리눅스는 Curl 명령어를 사용하여 LDAP 연결을 테스트합니다
다음:VSFTP 업로드 파일 권한 문제
 집주인| 게시됨 2021. 12. 11. 오후 5:35:26 |
[부대]블록은 보통 구성 파일의 첫 번째 블록으로, 유닛의 메타데이터와 그것이 다른 유닛들과 어떻게 관련되는지 정의합니다. 주요 필드는 다음과 같습니다.

설명: 간단한 설명
문서화: 문서의 주소
필요: 현재 유닛이 의존하는 기타 유닛, 그리고 이들이 작동하지 않으면 현재 유닛이 시동이 걸리지 않습니다
원함: 현재 유닛과 함께 작동하는 다른 유닛들, 만약 그들이 작동하지 않는다면, 현재 유닛이 실패하지 않습니다
BindsTo: Requires와 유사하게, 현재 유닛이 나가면 실행을 멈추게 하는 유닛을 지정합니다
전: 이 필드에 지정된 유닛도 시작할 경우, 현재 유닛 다음에 시작해야 합니다
후: 이 필드에 지정된 유닛도 시작할 경우, 현재 유닛보다 먼저 시작해야 합니다
충돌: 여기서 지정한 유닛은 현재 유닛과 동시에 운영될 수 없습니다
조건... : 현재 유닛이 실행되기 위해 충족해야 하는 조건들, 그렇지 않으면 실행되지 않습니다
주장하다... : 현재 장치가 작동하기 위해 충족해야 하는 조건들, 그렇지 않으면 시작 실패가 보고됩니다
[설치]보통 설정 파일의 마지막 블록에서 부팅 방법과 부팅 여부를 정의합니다. 주요 필드는 다음과 같습니다.

WantedBy: 그 값은 하나 이상의 Targets이며, 현재 유닛이 활성화(활성화)될 때, 심볼릭 링크는 /etc/systemd/system 디렉터리 아래 하위 디렉터리에 Target 이름 + .wants 접미사와 함께 배치됩니다
RequiredBy: 그 값은 하나 이상의 Targets이며, 현재 유닛이 활성화되어 있을 때 심볼링크는 /etc/systemd/system 디렉터리 아래 하위 디렉터리에 Target 이름 + .required 접미사와 함께 배치됩니다
별칭: 현재 부대가 시작할 때 사용할 수 있는 별명입니다
또한: 현재 유닛이 활성화되면 다른 유닛들도 동시에 활성화됩니다
[서비스]블록은 서비스 구성에 사용되며, 서비스 유형의 유닛만 이 블록을 가집니다. 주요 필드는 다음과 같습니다.

유형: 시작 시 프로세스의 동작을 정의합니다. 다음과 같은 값이 있습니다.
Type=simple: 기본 값으로, ExecStart가 지정한 명령을 실행하여 메인 프로세스를 시작합니다
type=forking: fork는 부모 프로세스로부터 자식 프로세스를 생성하며, 생성 직후 즉시 종료됩니다
Type=oneshot: 일회성 프로세스로, Systemd는 현재 서비스가 종료될 때까지 기다렸다가 실행을 계속합니다
타입=dbus: 현재 운행은 D-버스를 통해 시작됩니다
type=notify: 현재 서비스가 시작되면 Systemd가 알림을 받고 실행을 계속합니다
type=idle: 현재 서비스는 다른 작업이 실행될 때만 실행됩니다
ExecStart: 현재 서비스를 시작하는 명령어
ExecStartPre: 현재 서비스를 시작하기 전에 실행된 명령
ExecStartPost: 현재 서비스 시작 후 실행된 명령
ExecReload: 현재 서비스가 재시작될 때 실행되는 명령어
ExecStop: 현재 서비스가 중단되었을 때 실행되는 명령어
ExecStopPost: 명령이 전달될 때 실행되는 명령을 멈춥니다
RestartSec: 자동 서비스가 현재 서비스를 재시작하는 사이의 초 단위
재시작: Systemd가 현재 서비스를 자동으로 재시작하는 조건을 정의하며, 항상 (Ways), 성공 시(on-success), 실패 시(on-failure), 정상 시(on-abnormal), 중재(on-abort), 워치독 온(on-watchdog) 등의 가능한 값을 포함합니다
TimeoutSec: Systemd가 현재 서비스를 중단하기 전에 대기하는 초수를 정의합니다
환경: 환경 변수를 지정하세요


 집주인| 게시됨 2021. 12. 11. 오후 5:37:33 |
Type=forking
SystemD는 서비스 프로세스가 포크되고 부모 프로세스가 종료될 때 서비스가 성공적으로 시작된다고 생각합니다. 일반 데몬의 경우, 이 시작 방법이 당신의 필요에 맞지 않는다면 이 유형부터 시작할 수 있습니다. 이 시작 유형에서는 PIDFile= 도 지정하여 systemd가 서비스의 주요 프로세스를 추적할 수 있도록 해야 합니다

 집주인| 게시됨 2021. 12. 15. 오후 4:55:14 |
EnvironmentFile 명령어

EnvironmentFile은 Environment 명령어와 유사하지만, 텍스트 파일에서 환경 변수를 읽습니다. 텍스트 파일에는 줄 바꿈으로 구분된 변수 할당이 포함되어야 합니다

본보기

이 환경 파일을 가져와 그 변수들을 다음과 같이 사용할 수 있습니다:



 집주인| 게시됨 2022. 1. 4. 오후 3:56:55 |
 집주인| 게시됨 2022. 1. 5. 오전 9:48:21 |
Docker 기본 서비스 파일 경로 /usr/lib/systemd/system/docker.service

 집주인| 게시됨 2022. 1. 23. 오후 10:57:56 |
모든 서비스 상태 보기



NFS를 예로 들어 서비스가 켜져 있는지 문의합니다:

 집주인| 게시됨 2025. 2. 25. 오후 5:01:08 |
ABC로 시작하는 벌크 스타트 서비스

 집주인| 게시됨 2025. 4. 11. 오후 3:57:14 |
DefaultTimeoutStartSec= 와 DefaultTimeoutStopSec= 기본값은 시스템 관리자에서 90초, 사용자 관리자에서 90초로 설정되어 있습니다.

하이퍼링크 로그인이 보입니다.

다음 명령어로 지정된 서비스의 구성을 확인하세요:


면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com