시스템 의존성 및 부팅 순서 Samba를 어떻게 수행 할 수 있습니까? Fedora에서이를

프로세스를 시작하려면 부팅 순서를 지정해야합니다. Fedora 18에서 389 Directory Server 및 Samba를 실행하고 있습니다. 네트워크 서비스를 부팅 한 다음 389 DS, Samba를 어떻게 수행 할 수 있습니까? Fedora에서이를 관리하기위한 GUI가 있습니까?

Samba가로 시작하도록 설정했습니다 systemctl enable smb.service. 또한와 함께 389 DS를 사용하도록 설정했습니다 systemctl enable dirsrv.target.



답변

systemctl edit smb.service종속성을 업데이트하는 데 사용하십시오 .

After=dirsrv.target -dirsrv.target 다음에 smb.service가 시작되도록합니다.

견고성을 위해 (이 물건을 다루는 동안 가치가 있음) 다음 중 일부를 포함시킬 수도 있습니다.

Requires=dirsrv.target-smb.service가 활성화되면 dirsrv.target을 활성화하십시오. dirsrv.target이 실패하면 smb.service가 실패합니다.

Wants=dirsrv.target-smb.service가 활성화되면 dirsrv.target을 활성화하십시오. dirsrv.target이 실패해도 smb.service가 실패하지 않습니다.

BindsTo=dirsrv.target -dirsrv.target이 비활성화 된 경우 smb.service를 비활성화하십시오.

출처 : http://www.freedesktop.org/software/systemd/man/systemd.unit.html

systemd-uisystemd를위한 GUI를 제공합니다. systemd 상태를 잘 볼 수 있지만 여전히 유닛 파일을 수정하려면 텍스트 편집기를 사용해야합니다.


답변

다음 두 가지를 수행하십시오.

  1. /lib/systemd/system/smb.service종속성을 지정 하려면 단위 파일을 편집하십시오 . 이 [unit]섹션에는이 After=서비스 전에 도달해야하는 서비스 / 대상을 지정 하는 행이 있습니다.

    After=syslog.target network.target nmb.service winbind.service
    

    다음으로 변경하십시오.

    After=dirsrv.target syslog.target network.target nmb.service winbind.service
    
  2. 이 종속성을 Fedora에 버그로 다시보고 하여 향후 릴리스에 통합 될 수 있도록하십시오.


답변

파일 섹션 에서 Requires지시문이 있는 행을 변경하거나 포함시켜야 할 수도 있습니다.[Unit]/usr/lib/systemd/system/smb.service

Requires=dirsrv.target

After=dirsrv.target


답변

서비스 파일을 수정하는 두 가지 대안이 있습니다 /usr/lib/systemd/system( 예 2 : 공급 업체 설정 재정의 참조 ).

  1. 파일을 복사하여 /etc/systemd/system사본을 수정하십시오. 이 파일은의 파일을 완전히 무시합니다
    /usr/lib.

  2. 파일을 작성하십시오 /etc/systemd/system/smb.service.d/local.conf. 파일의 내용은 아래 예와 같아야합니다. 공급 업체 제공 서비스 파일의 “필수”및 “후”옵션을 선택적으로 무시합니다.

의 각 파일 수정을 포함하여 각각의 /usr/lib장단점이 있습니다. 최선의 선택은 서비스 및 수정의 특성에 따라 달라질 수 있습니다.

작동하지만 “After”옵션 만 추가하는 것만으로는 충분하지 않습니다 ( [Unit] 섹션 옵션 참조 ). “After”는 순서를 제어하지만 종속성은 제어하지 않습니다. 만약이 dirsrv.target그것을 시작되지 않습니다 순서를 지정, 다른 방법으로 시작되지 않습니다. “필수”또는 “원함”옵션을 사용하면 강제 dirsrv.target로 시작됩니다.

[Unit]
Requires=dirsrv.target
After=dirsrv.target

NB :이 질문을 처음 받았을 때이 방법을 사용할 수 있었는지 모르겠습니다.


답변