추가 읽기

추가 읽기

서비스를 시작하고 싶어요samplerbox.service

[Unit]
Description=Starts SamplerBox

[Service]
Type=simple
ExecStart=/root/SamplerBox/samplerbox.sh          # this script does: python /root/SamplerBox/samplerbox.py
WorkingDirectory=/root/SamplerBox/

[Install]
WantedBy=multi-user.target

앞으로 networking.service(DHCP 사항, IP 소유권 등)이 완료되었습니다.

참고: 내 프로그램은 네트워크를 전혀 사용하지 않습니다.


이것은 줄거리입니다 (여기가 더 큰 사이즈):

보시다시피 완료를 samplerbox.service기다리고 있습니다 networking.service. (여러번 테스트해봤는데 모두 똑같습니다.)

시도해 보았습니다. WantedBy=multi-user.target다른 것으로 교체 WantedBy=sound.target 하고 systemctl disable samplerbox.service다시 활성화했지만... 작동하지 않았습니다!

서비스를 강제로 먼저 시작하는 방법은 무엇입니까 networking.service?

답변1

samplerbox.service네트워크가 완료된 후 시작하십시오.

하지만 실제로 일어나는 일이 아니라 우연히 일어난 일입니다. 당신이 보면주의 깊은다이어그램에서 . samplerbox.service이후에 시작되는 것을 볼 수 있습니다 basic.target. 이는 정상적인 현상이며 systemd에 의해 설계되었습니다. 대부분의 (비시스템) 서비스에는 서비스 단위에 기록되지 않은 암시적 종속성 및 시퀀스인 "기본 종속성" 세트가 있습니다. 종속성 basic.target과 후속 순서는 서비스 단위에서 기본값이 명시적으로 비활성화되지 않는 한 systemd에 의해 적용되는 기본값 중 하나입니다.

또한 순서와 종속성을 혼동하고 있습니다. 다양한 "want" 지시문(예: WantedBy사용하고 있는 지시문과 그 반대 지시문 Wants)은 종속성을 지정합니다. 서비스 A가 시작되도록 요청하면 서비스 B도 시작되도록 시스템 대기열에 작업이 있습니다. 그들이하다아니요이러한 작업의 순서를 지정합니다. 순서는 다른 설정, 즉 이름이 다소 명확한 Before및 에 의해 제어됩니다 After.

작업 시작 및 중지를 지정하는 전체 종속성 세트는 다음과 같은 간단한 명령을 통해 구축됩니다 systemctl start graphical.target. 순서는 이러한 작업의 실행 시간과 순서를 지정합니다.

추가 읽기

  • 레나트 페틀링(2013-10-07). systemd.unit. 시스템 매뉴얼 페이지. freedesktop.org.
  • 레나트 페틀링(2013-10-07). systemd.service. 시스템 매뉴얼 페이지. freedesktop.org.

관련 정보