아치 5.18.12
여러 개의 네트워크 인터페이스가 있는데 때로는 모든 인터페이스에 연결하는 데 몇 분이 걸립니다. 그러나 시스템 시작에는 하나만 필요합니다. 어느 하나는 내 지리적 위치에 따라 다릅니다.예때로는 Wi-Fi를 사용하고 싶을 때도 있고 그렇지 않을 때도 있습니다.
긴 시작을 피하기 위해 이 줄을 /lib/systemd/system/systemd-networkd-wait-online.service
추가하여 수정했습니다 .--any
ExecStart
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
매우 매력적입니다.
그런데 업데이트를 하면 파일을 덮어쓰게 되어 시작하는데 시간이 오래 걸리고, 서비스 파일을 다시 수정해야 합니다.
여기에 더 효과적인 전략이 있습니까?
답변1
이 두 가지 아이디어를 결합하면시스템 단위 파일 설정을 재정의하는 방법은 무엇입니까?systemctl edit systemd-networkd-wait-online.service
, 편집기를 열고 다음 섹션을 파일에 넣은 후 편집기를 저장하고 종료하는 ExecStart 지시문을 호출하여 재정의하는 것이 좋습니다 .
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
이 명령은 이러한 내용을 포함하는 파일을 /etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf에 저장합니다. 이중 ExecStart 지시어는 오타가 아닙니다. 직접 설정하기 전에 먼저 기존 콘텐츠를 지우는 것이 중요합니다.
/lib/systemd/system/systemd-networkd-wait-online.service 파일은 패키지 관리자에서 제공되므로 업데이트 중 하나가 누락된 것이 확실합니다.
- 패키지 업데이트 중에 /lib 아래의 파일 변경 사항이 손실될 수 있음
- 패키지 관리자가 ExecStart 지시문에 대해 변경한 내용은 로컬 재정의로 덮어쓰여집니다.
제 생각에는 두 번째 옵션이 더 나은 이유는 다음과 같습니다.
- 이는 /etc에 있으며 패키지 업그레이드의 영향을 받지 않습니다(따라서 변경 사항이 완전히 손실되지 않습니다).
- 수행 중인 작업과 이유를 설명하는 설명을 적용 범위 파일에 추가할 수 있습니다.
- ExecStart에 대한 패키징 변경 사항이 발생할 경우 로컬 재정의에 병합되거나 병합되지 않을 수 있습니다.
패키지가 systemd-networkd-wait-online
프로그램의 이름을 바꾸거나 다른 방법으로 이동하기로 결정하면 업데이트할 때까지 재정의가 중단됩니다(그러나 그런 일이 발생하면 /lib에 있는 파일에 대한 변경 사항도 손실되므로 기능도 손실됩니다).
답변2
/lib/systemd/system/systemd-networkd-wait-online.service
를 실행하여 수동 변경 사항을 강제로 보존할 수 있습니다 systemctl daemon-reload
.
경고하다:daemon-reload 를 실행하기 전에 systemctl edit
파일을 변경하고 필요한 변경 사항을 추가하는 것이 중요합니다 . /lib/systemd/system/
특히:
cat /etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf
변경 사항을 보려면- 편집하다
/lib/systemd/system/systemd-networkd-wait-online.service
; - 삭제
/etc/systemd/system/systemd-networkd-wait-online.service.d/override.conf
; systemctl daemon-reload
systemctl restart
systemd-networkd 서비스.
답변3
.sh.
명령을 실행하는 파일을 생성하고 이를 서비스와 연결할 수 있다고 생각합니다 . 따라서 이것은 단지 패치일 뿐이며 ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
시작 시 실행될 파일에 해당 명령을 넣을 수 있어야 합니다 . 저번에 이 글을 읽었는데시스템 서비스 생성. 필요에 맞게 원본 파일을 변경할 수 있습니다. 페이지 하단에서 서비스 생성 및 설치 예를 생성/보여주는지 확인하세요.이더넷 도구. 도움이 되길 바랍니다.