บนเซิร์ฟเวอร์ CentOS 7 ฉันกำลังสร้างบริการ systemd ใหม่ตั้งแต่ต้นสำหรับบริการใหม่ prometheus-slurm-exporter (เป็นแอปพลิเคชันที่ส่งออกข้อมูลจากตัวกำหนดตารางเวลา SLURM บนคลัสเตอร์ HPC) โดยค่าเริ่มต้นจะใช้พอร์ต 8080 แต่เนื่องจากบริการอื่นใช้พอร์ตนั้นอยู่แล้ว ฉันจึงกำหนดให้ใช้พอร์ต 9090 แทน เรียกใช้จากบรรทัดคำสั่ง คำสั่งมีลักษณะดังนี้:
/opt/prometheus-slurm-exporter/bin/prometheus-slurm-exporter --listen-address="0.0.0.0:9090"
มันทำงานได้ดีจากบรรทัดคำสั่ง แต่ฉันต้องการสร้างบริการ systemd จากมัน ดังนั้นฉันจึงสร้างไฟล์ต่อไปนี้ /etc/systemd/system/prometheus-slurm-exporter.service:
[หน่วย]
คำอธิบาย=SLURM Prometheus Exporter สำหรับ Grafana
หลังจาก = network.target syslog.target
[บริการ]
ExecStart=/opt/prometheus-slurm-exporter/bin/prometheus-slurm-exporter --listen-address="0.0.0.0:9090"
[ติดตั้ง]
WantedBy=multi-user.target
หลังจากวิ่ง systemctl daemon-โหลดซ้ำ
ติดตามโดย systemctl เริ่ม prometheus-slurm-exporter
บริการล้มเหลว รายงานพอร์ตที่ไม่รู้จัก:
30 ก.ย. 12:21:14 น. ada prometheus-slurm-exporter: time="2021-09-30T12:21:14-04:00" level=info msg="Starting Server: \"0.0.0.0:9090\"" ที่มา = "main.go:59"
30 ก.ย. 12:21:14 น. ada prometheus-slurm-exporter: time="2021-09-30T12:21:14-04:00" level=fatal msg="listen tcp: address tcp/9090\": พอร์ตที่ไม่รู้จัก" ที่มา = "main.go:62"
30 ก.ย. 12:21:14 น. ada systemd: prometheus-slurm-exporter.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออก, สถานะ=1/ล้มเหลว
30 ก.ย. 12:21:14 น. ada systemd: Unit prometheus-slurm-exporter.service เข้าสู่สถานะล้มเหลว
30 ก.ย. 12:21:14 น. ada systemd: prometheus-slurm-exporter.service ล้มเหลว
เหตุใดจึงเรียกใช้จากบรรทัดคำสั่ง แต่ไม่ใช่เป็นบริการ systemd และเหตุใด systemd จึงไม่รู้จักพอร์ต 9090