systemd: 빈 단위 파일로 서비스 차단을 해제하는 방법은 무엇입니까?

systemd: 빈 단위 파일로 서비스 차단을 해제하는 방법은 무엇입니까?

시작하려고 하는데 wpa_supplicant.service다음 오류가 발생합니다.

wpa_supplicant.service를 시작할 수 없습니다. wpa_supplicant.service 장치가 차단되었습니다.

를 사용하여 이를 찾아보았지만 systemctl unmask wpa_supplicant.service아무 것도 바뀌지 않은 것 같습니다.

systemctl status wpa_supplicant.service

반품

로드됨: 보호됨(/usr/lib/systemd/system/wpa_supplicaant.service; 보호됨; 공급업체 기본값: 비활성화됨) 활성: 비활성(죽음)

정말 이상한 점은 파일을 검사해 보니 wpa_supplicant.service빈 문서라는 점입니다.
서비스를 어떻게 공개할 수 있나요?

답변1

댓글 8개, 답변 없음 - 정말 여러분, 질문에 집중하세요. 시스템 서비스의 가면을 밝히는 방법! ! ! ! 시도해 볼 수 있지만 systemctl unmask your_app.service서비스가 이미 에 심볼릭 링크되어 있으면 /dev/null실패합니다 . 권장되는 프로세스는 다음과 같습니다.

  1. 유닛 파일이 다음 심볼릭 링크인지 확인하십시오 /dev/null.

    file /lib/systemd/system/your_app.service
    OR
    file /etc/systemd/system/your_app.service
    

    다음을 반환해야 합니다.

    /lib/systemd/system/your_app.service: symbolic link to /dev/null
    
  2. 심볼릭 링크를 제거합니다:

    sudo rm /lib/systemd/system/your_app.service
    
  3. 서비스를 변경할 때 systemd 데몬을 다시 로드합니다.

    sudo systemctl daemon-reload
    
  4. 상태 확인:

    systemctl status your_app
    

즐거운 호스팅 :)

답변2

빈(0바이트) 서비스 단위는 마스크로 해석됩니다 systemd. systemctl mask <unit>서비스를 심볼릭 링크하여 작동하는 동안 /dev/nullsystemd는 셀이 마스크되었는지 확인하기 위해 읽을 때 파일에서 0바이트를 확인하는 것 같습니다. 이로 인해 서비스 차단에 대한 잘못된 메시지가 표시될 수 있습니다.
서비스 유닛이 비어 있는 이유를 파악해야 합니다.

빈 단위 파일로 서비스 마스크를 해제하는 방법은... 단위를 비어 있지 않게 만들어 서비스를 "마스크 해제"할 수 있습니다.장치가 비어 있습니다.

관련 정보