Autossh 시작 실패

Autossh 시작 실패

systemd를 사용하여 집에 있는 서버에 대한 역방향 터널을 자동으로 설정하도록 autossh를 얻으려고 합니다. /etc/systemd/system에 autossh.service라는 단위를 설정했습니다.

인터넷에 연결한 후 서비스를 시작하면 모든 것이 잘 작동합니다. 그러나 출시 당시에는 그렇지 않습니다. "호스트 이름을 확인할 수 없습니다."는 인터넷에 연결되어 있지 않기 때문에 표시할 수 없습니다.

/etc/systemd/system/autossh.service에 다음 줄이 있습니다.

After=network-online.target

이론적으로는 이 문제가 해결되어야 하지만 그렇지 않습니다. 시작 시 명령이 실패하고(아직 온라인 상태가 아니므로 호스트 이름을 확인할 수 없다고 표시됨) 재시도하지 않습니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

그것은 다음과 같습니다:

Restart=always
RestartSec=120

아마도...

또는 다음을 참조하세요.StartLimitInterval 이후 Systemd 서비스가 자동으로 다시 시작됩니다.

답변2

a) StartLimitIntervalSec=12의 시작 부분에 [Unit]을 추가해 보세요 autossh.service.

b) Type=simple[서비스] 섹션.

c) 데몬을 다시 로드합니다 sudo systemctl daemon-reload.

d) 다시 활성화합니다 sudo systemctl enable autossh.

e) 시작하세요 sudo systemctl start autossh.

f) 다시 시작

성공하셨나요?

답변3

또한 다음을 추가해야 합니다.

Wants=network-online.target

이렇게 하면 서비스가 시작되기 전에 구성된 모든 네트워크 장치가 시작되고 IP 주소가 할당됩니다.

답변4

유닛 파일을 기다리게 만드는 것이 더 나은 목표처럼 들리지 않습니까?

nss-find.target

모든 호스트/네트워크 이름 서비스 조회에 대한 동기화 지점의 대상으로 사용해야 합니다. 이는 nss-user-lookup.target을 사용해야 하는 UNIX 사용자/그룹 이름 조회와는 아무런 관련이 없습니다. 전체 호스트/네트워크 이름 확인이 필요한 모든 서비스는 이 대상 이후에 주문되어야 하지만 끌어와서는 안 됩니다. systemd는 "$named" 기능을 참조하는 LSB가 있는 모든 SysV init 스크립트 서비스 유닛 헤더에 이 대상 유닛의 After= 유형 종속성을 자동으로 추가합니다.

인용하다

관련 정보