systemctl reload 네트워크는 더 이상 Buster에서 작동하지 않습니다.

systemctl reload 네트워크는 더 이상 Buster에서 작동하지 않습니다.

Jesse의 경우 명령은

sudo systemctl reload networking

불만없이 실행됩니다. 버스터에서는 실패했어요

네트워크 서비스를 다시 로드할 수 없습니다. 작업 유형 다시 로드는 조직 네트워크 서비스에 적용되지 않습니다.

무엇을 해야 합니까?

(왜 이런 일이 발생합니까? systemd 문서에서 간단한 답변을 찾을 수 없습니다.https://github.com/systemd/systemd/blob/master/NEWS#L474다시 로드가 가능하다고 언급되었으나 더 이상 작동하지 않는 것 같습니다)

답변1

이것이 Debian 10에서 실행하기에 의미 있는 명령이라고 생각할 이유가 없으며 Debian 8에서는 특히 유용하지 않습니다.

이 서비스는 systemd 사람들에 의해 제공되지 않기 때문에 이것은 systemd doco와 아무 관련이 없습니다. 포장으로 제공됩니다 ifupdown.

데비안 8에는 명시적인 단위가 없습니다 networking.service. 이 이름의 서비스는 자동으로 생성된 단위 래퍼입니다.반 스물렌부르크 /etc/init.d/networking스크립트. van Smoorenburg rc스크립트에는 생성기가 허용하는 "다시 로드" 의미 체계가 있지만 단순한 다시 시작과 거의 다르지 않습니다.

데비안 10에는클리어 networking.service유닛, 그러나 서비스 프로세스가 종료된 후에도 계속 실행되도록 표시된 단일 서비스입니다. 의미 있는 "다시 로드" 의미가 제공되지 않습니다. ExecReload서비스 정의에는 아무 것도 없으며 이를 알리는 프로세스도 없습니다. networking.service의미 있게 시작, 중지 및 다시 시작만 가능합니다. "다시 로드"되지 않습니다.

답변2

당신이 원하는

sudo systemctl restart networking

~에서시스템(1):

새로고침 모드...

명령줄에 나열된 모든 장치에 구성을 다시 로드하도록 요청합니다. 이는 systemd의 단위 구성 파일이 아닌 서비스별 구성을 다시 로드한다는 점에 유의하세요. ...즉, Apache 예의 경우 apache.service 시스템 단위 파일이 아닌 웹 서버에서 Apache의 httpd.conf를 다시 로드합니다. ...

이 옵션을 지원하는 서비스 단위의 경우 reload이를 구현해야 합니다 ExecReload=.

systemctl cat apache2.service이것이 실제로 지원된다는 것을 알게 될 것입니다 .

[Service]
Type=forking
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
...

또한 systemctl cat networking.service다음이 아닙니다.

[Service]
Type=oneshot
ExecStart=/sbin/ifup -a --read-environment
ExecStop=/sbin/ifdown -a --read-environment --exclude=lo
RemainAfterExit=true
...

내가 가지고 있는 데비안 7(gasp) 머신을 보면 아직 시스템이 설치되어 있지 않은 것을 알 수 있습니다. 분명히 지원 /etc/init.d/networking은 다음 작업 reload만 수행합니다 .ifdownifup

# /etc/init.d/networking (on Debian 7 wheezy)
...
reload)
    process_options

    log_action_begin_msg "Reloading network interfaces configuration"
    state=$(cat /run/network/ifstate)
    ifdown -a --exclude=lo $verbose || true
    if ifup --exclude=lo $state $verbose ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;
...

주변에 데비안 8(jessie) 머신이 없지만 모든 것이 도입되었지만 systemd아직 마이그레이션되지 않았을 것입니다. 그렇게 한다면 향후 릴리스에서는 더 이상 이러한 init 스크립트에 의존하지 않게 systemctl cat networking될 것입니다 .ExecReload=/etc/init.d/networking reload

관련 정보