![#[Unit]을 주석 처리하지 않으면 부팅 시 시스템 서비스 단위가 시작되지 않습니다.](https://linux55.com/image/100927/%23%5BUnit%5D%EC%9D%84%20%EC%A3%BC%EC%84%9D%20%EC%B2%98%EB%A6%AC%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9C%BC%EB%A9%B4%20%EB%B6%80%ED%8C%85%20%EC%8B%9C%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%84%9C%EB%B9%84%EC%8A%A4%20%EB%8B%A8%EC%9C%84%EA%B0%80%20%EC%8B%9C%EC%9E%91%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
최신 Arch Linux ARMv7(RaspPi 3)을 실행합니다. 두 개의 시스템 서비스 단위를 만들었습니다. foo
먼저 시작하고 나중에 시작하고 싶습니다 bar
. foo
부팅 시 시작되지만 bar
시작되지 않습니다. 그러나 bar
쉘 프롬프트에서 수동으로 시작됩니다. 다음은 유닛 파일의 복사본입니다 bar
.
[Unit]
Requires=foo.service
After=foo.service
[Service]
Type=simple
ExecStart=/usr/bin/setsid /usr/bin/bar >/dev/null 2>&1 < /dev/null
TimeoutSec=0
RemainAfterExit=Yes
[Install]
WantedBy=getty.target
그러나 다음과 같이 앞에 파운드 기호를 넣으면 다음과 같습니다 [Unit]
.
#[Unit]
그런 다음 bar
부팅 시 올바른 순서로 시작합니다(그 이후 foo
).
이 동작과 의견은 [Unit]
이치에 맞지 않는 것 같으며 제가 찾은 문서에도 맞지 않습니다. 그렇다면 부팅 시 장치가 시작되는 이유가 무엇인지 궁금합니다. !
답변1
주석 처리하면 및 지시어가 무시 [Unit]
됩니다 . 이러한 지시문을 제거하고 주석을 제거하면 동일한 동작이 발생합니다.Requires
After
#
주석 없이 부팅 시 시작되지 않는 이유는 #
다른 서비스의 요구 사항에 문제가 있기 때문일 것입니다.