이 systemctl이 시작되지 않는 이유는 무엇입니까?

이 systemctl이 시작되지 않는 이유는 무엇입니까?

데비안 11에 있습니다. FilePwOn.service:

[Unit]

Description=Send a message with a telegram bot 
After=network.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/JubiBotStartup.sh

[Install]

WantedBy=multi-user.target

Bash 스크립트 JubiBotStartup.sh는 다음과 같습니다.

#!/bin/bash

TOKEN="randomToken"
ID="11111111"
DT=$(date +'+%d-%m-%Y')
HR=$(date +'+%H:%M:%S')
MSG="System powered on $DT , $HR"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
curl -s -X POST $URL -d chat_id=$ID -d text="$MSG"

서비스를 활성화했기 때문에 systemctl status 명령을 입력하면 다음과 같이 표시됩니다. "systemctl start PwOn.service"를 사용하여 서비스를 시작하면 제대로 작동합니다.

그러나 시스템 전원을 켜거나 재시작할 때 작동하지 않으며, 상태를 확인하면 다음과 같습니다.

PwOn.service - Send a message with a telegram bot 
     Loaded: loaded (/etc/systemd/system/PwOn.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2023-03-07 04:22:37 CET; 21min ago
    Process: 474 ExecStart=/usr/bin/JubiBotStartup.sh (code=exited, status=6)
   Main PID: 474 (code=exited, status=6)
        CPU: 129ms

Mar 07 04:22:36 debian systemd[1]: Started Send a message with a telegram bot 
Mar 07 04:22:37 debian systemd[1]: PwON.service: Main process exited, code=exited, status=6/NOTCONFIGURED
Mar 07 04:22:37 debian systemd[1]: PwOn.service: Failed with result 'exit-code'
~

답변1

네트워크가 온라인 상태가 된 후 장치가 정상적으로 작동하는지 확인하려면 다음을 나열해야 합니다.network-online.target존재하다둘 다 Wants=그리고 After=:

[Unit]
Description=Send a message with a telegram bot 
After=network-online.target
Wants=network-online.target

현재 장치는 네트워크 부팅 중에 실행되지만 curl대상 호스트를 확인할 수 없기 때문에 실패합니다(종료 코드 6이 나타냄).

관련 정보