체계화 : 요구 대 요구


18

사이에 어떤 차이가 있습니까 필요합니다여기서 원하는 대상 파일?

[Unit]
Description=Graphical Interface 
Documentation=man:systemd.special(7)
Requires=multi-user.target
Wants=display-manager.service

감사


2
참조man systemd.unit
heemayl

답변:


12

의견에서 heemayl이 언급했듯이 맨 페이지는 귀하의 질문에 답변합니다. 웹에서 :

구함 =

Needs의 약한 버전. 구성 단위가 구성되어 있으면이 옵션에 나열된 장치가 시작됩니다. 그러나 나열된 단위가 시작되지 않거나 트랜잭션에 추가 할 수없는 경우 트랜잭션 전체의 유효성에 영향을 미치지 않습니다. 이것은 한 장치의 시작을 다른 장치의 시작에 연결하는 권장 방법입니다.

그리고 필요 = :

다른 장치에 대한 요구 사항 종속성을 구성합니다. 본 기기가 활성화되면 여기에 나열된 기기도 활성화됩니다. 다른 장치 중 하나가 비활성화되거나 활성화에 실패하면이 장치가 비활성화됩니다. 이 옵션은 두 번 이상 지정되거나 공백으로 구분 된 여러 단위가 하나의 옵션으로 지정 될 수 있으며,이 경우 나열된 모든 이름에 대한 요구 사항 종속성이 작성됩니다. 요구 사항 종속성은 서비스가 시작되거나 중지되는 순서에 영향을 미치지 않습니다. After = 또는 Before = 옵션을 사용하여 독립적으로 구성해야합니다. 유닛 foo.service에 Required =로 구성된대로 유닛 bar.service가 필요하고 After = 또는 Before =로 순서가 구성되지 않은 경우, foo.service가 활성화되면 두 유닛이 동시에 시작되고 지연되지 않습니다. 자주,

이 종속성 유형이이 장치가 실행 중일 때 다른 장치가 항상 활성 상태 여야 함을 의미하지는 않습니다. 구체적으로, 조건 검사 실패 (ConconditionPathExists =, ConditionPathExists =,… — 아래 참조)로 인해 Required = 종속성이있는 장치의 시작 작업이 실패하지 않습니다. 또한 일부 장치 유형은 자체적으로 비활성화 될 수 있습니다 (예 : 서비스 프로세스가 완전히 종료하기로 결정하거나 사용자가 장치의 플러그를 뽑을 수 있음). BindsTo = 종속성 유형을 After =와 함께 사용하면 특정 다른 장치 없이도 활성 상태에있는 장치가없는 상태가 될 수 있습니다 (아래 참조).

로부터 freedesktop.org 페이지

다중 user.target 에 도달 한 경우에만 서비스가 시작 되고 (해당 대상에 추가하려고하면 어떻게되는지 모르겠습니까?) systemd는 서비스 전에 display-manager.service 를 시작하려고 합니다. . 경우 디스플레이 manager.service이 어떤 이유로 실패, 서비스는 여전히 (당신이 정말로 디스플레이 관리자, 사용이 필요 그렇다면 시작됩니다 Requires=그것을위한 참조). 는 IF multi-user.target는 그러나 도달하지, 서비스가 시작되지 않습니다.

당신의 서비스는 무엇입니까? 키오스크 시스템입니까? 직관적으로 서비스를 multi-user.target (따라서 시작시 시작)에 추가하고 를 통해 display-manager.service 에 엄격하게 의존한다고 가정합니다 Requires=display-manager.service. 그러나 그것은 지금 막 추측 할뿐입니다.


1

우리의 서버 배포는 모든 사용자 ID 및 자동 마운트 맵을 포함하는 LDAP를 사용합니다. 사용자 홈 디렉토리는 NFS로 마운트되며 사용자는 일반적으로 홈 디렉토리에 실행 코드를 사용하여 @reboot cronjob을 만듭니다. 캐시에도 sssd를 사용합니다. 말할 필요도없이, 우리는이 구성이 작동하기 위해 결정적인 부팅 순서를 제공 할 수있는 것에 크게 의존합니다. 우리는 매우 간결한 시스템 구성을 개발했으며 "원하는"및 "필요한"섹션 옵션 사이에 모호한 뉘앙스를 발견했습니다.

부팅하는 동안 서비스에 장애가 있고 "restart = always"를 서비스 옵션으로 설정하여 해당 서비스에 대해 "요구"와 관련된 다른 서비스가있는 경우 해당 종속 서비스는 다시 시작되지 않습니다. 그러나 옵션으로 "원함"이 있으면 종속 서비스가 예상대로 다시 시작됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.