Pe un server CentOS 7, creez un nou serviciu systemd de la zero pentru un nou serviciu, prometheus-slurm-exporter. (Este o aplicație care exportă date din planificatorul SLURM pe un cluster HPC.) În mod implicit, folosește portul 8080, dar deoarece acel port este deja utilizat de un alt serviciu, l-am setat să folosească Portul 9090. Rulați din linia de comandă, comanda arată astfel:
/opt/prometheus-slurm-exporter/bin/prometheus-slurm-exporter --listen-address="0.0.0.0:9090"
Funcționează bine din linia de comandă, dar vreau să creez un serviciu systemd din el, așa că am creat următorul fișier, /etc/systemd/system/prometheus-slurm-exporter.service:
[Unitate]
Descriere=SLURM Prometheus Exporter pentru Grafana
După=network.target syslog.target
[Serviciu]
ExecStart=/opt/prometheus-slurm-exporter/bin/prometheus-slurm-exporter --listen-address="0.0.0.0:9090"
[Instalare]
WantedBy=multi-user.target
După alergare systemctl daemon-reload
urmat de systemctl porniți prometheus-slurm-exporter
, serviciul eșuează, raportând un port necunoscut:
30 septembrie 12:21:14 ada prometheus-slurm-exporter: time="2021-09-30T12:21:14-04:00" level=info msg="Se pornește serverul: \"0.0.0.0:9090\"" source="main.go:59"
30 septembrie 12:21:14 ada prometheus-slurm-exporter: time="2021-09-30T12:21:14-04:00" level=fatal msg="ascultă tcp: adresa tcp/9090\": port necunoscut" source="main.go:62"
30 septembrie 12:21:14 ada systemd: prometheus-slurm-exporter.service: proces principal ieșit, cod=ieșit, stare=1/Eșec
30 septembrie 12:21:14 ada systemd: Unitatea prometheus-slurm-exporter.service a intrat în stare eșuată.
30 septembrie 12:21:14 ada systemd: prometheus-slurm-exporter.service a eșuat.
De ce rulează din linia de comandă, dar nu ca serviciu systemd și de ce nu poate recunoaște systemd portul 9090?