부팅 시 gpsd가 시작되지 않지만 수동으로 시작할 수 있습니다.

부팅 시 gpsd가 시작되지 않지만 수동으로 시작할 수 있습니다.

좋습니다. 이 질문에는 다양한 변형이 있다는 것을 알고 있습니다. 관련성이 있을 것 같은 거의 모든 항목을 살펴봤지만 아무 것도 작동하지 않습니다.

GPS 정보를 제공하는 USB 직렬 장치가 /dev/ttyGPS에 설정되어 있습니다. GPSD를 설치하고 활성화했습니다. gpsd.socket도 마찬가지입니다. 문제 없이 이러한 서비스를 수동으로 시작할 수 있습니다(또는 중지했다가 시작할 수도 있습니다). 그러나 어떤 이유로 부팅할 때 시작되지 않습니다. gpsd의 로그 출력은 다음과 같습니다.

systemd[1]: Dependency failed for GPS (Global Positioning System) Daemon. systemd[1]: Job gpsd.service/start failed with result 'dependency'.

이것만으로도 충분히 신비롭다. 나는 gpsd.socket을 보고 이것을 보았습니다:

systemd[1]: gpsd.socket failed to listen on sockets: Address already in use systemd[1]: Failed to listen on GPS (Global Positioning System) Daemon Sockets. systemd[1]: Unit gpsd.socket entered failed state.

USB 로드 옵션을 "true" 및 "false"로 설정해 보았습니다. 포트 2947에 무엇이 있는지 보려고 했지만 아무것도 없었습니다. 5초마다 자동으로 서비스를 재시작하여 문제를 해결하려고 노력했지만 실패한 상태에서는 이 방법이 작동하지 않는 것 같습니다.

시작 시 포트가 차단되는 이유를 알아내기 위해 내가 할 수 있는 일을 아는 사람이 있습니까? 또는 시작이 완료될 때까지 시작을 지연하고 매뉴얼처럼 시작하는 것이 기쁘지 않은 한. 이것은 CentOS 7 시스템에 있습니다. 매우 감사합니다

편집: 다음은 gpsd 서비스 파일입니다.

[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=gpsd.socket
# Needed with chrony SOCK refclock
After=chronyd.service

[Service]
EnvironmentFile=-/etc/sysconfig/gpsd
ExecStart=/usr/sbin/gpsd -N $OPTIONS

[Install]
WantedBy=multi-user.target
Also=gpsd.socket

GPSd.소켓:

[Unit]
Description=GPS (Global Positioning System) Daemon Sockets

[Socket]
ListenStream=/var/run/gpsd.sock
ListenStream=127.0.0.1:2947
SocketMode=0600

[Install]
WantedBy=sockets.target

그리고 OPTIONS의 /etc/sysconfig/gpsd 파일 내용

# Options for gpsd, including serial devices
OPTIONS="/dev/ttyGPS"
# Set to 'true' to add USB devices automatically via udev
USBAUTO="true"

관련 정보