systemd 서비스에서 명령 로그를 확인하시겠습니까?

systemd 서비스에서 명령 로그를 확인하시겠습니까?

ngrok를 실행하는 시스템 서비스가 있습니다.

[Unit]
Description=Ngrok
After=network.service

[Service]
type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu
ExecStart=/snap/bin/ngrok http 4000 --host-header="localhost:4000"
Restart=on-failure

[Install]
WantedBy=multi-user.target

이 서비스의 상태:

● ngrok.service - Ngrok
     Loaded: loaded (/etc/systemd/system/ngrok.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-04-23 14:30:57 UTC; 7min ago
   Main PID: 24333 (ngrok)
      Tasks: 0 (limit: 4435)
     CGroup: /system.slice/ngrok.service
             ‣ 24333 /snap/ngrok/56/ngrok http 3000 --host-header=localhost:4000

Apr 23 14:30:57 pi-ubuntu systemd[1]: Started Ngrok.

그러나 URL을 얻으려면 ngrok의 출력을 살펴봐야 합니다. 출력을 어떻게 볼 수 있나요?응록systemd 서비스의 명령은 다음과 같습니다.

~> ngrok http 4000 --host-header="localhost:4000"
    ngrok                                                                                                                                       (Ctrl+C to quit)                                                                                                                                                            Session Status                online
    Account                       Amod Amatya (Plan: Free)
    Version                       3.0.2
    Region                        Europe (eu)
    Latency                       27.47694ms
    Web Interface                 http://127.0.0.1:4040
    Forwarding                    https://xyz-testing.ngrok.io -> http://localhost:4000                                                                                                                                                                                                    Connections                   ttl     opn     rt1     rt5     p50     p90
                                  0       0       0.00    0.00    0.00    0.00

추신. Journalctl은 명령의 전체 로그도 표시하지 않습니다.

답변1

URL을 얻으려면 ngrok의 출력을 살펴봐야 합니다.

더 좋은 방법이 있을 겁니다! 이는 중요한 작동 속성이므로 표준 출력을 통해서만 표시되어서는 안 됩니다. Ngrok실행 중인 서비스에서 이를 읽을 수 있는 방법이 있다고 확신합니다 . 나는 ngrok을 사용해 본 적이 없지만 그것이 일종의 포트 전달 서비스라는 것을 알고 있습니다.활동 엔드포인트 쿼리아주 사용하기 쉬운

curl \
    -H "Authorization: Bearer {API_KEY}" \
    -H "Ngrok-Version: 2" \
    https://api.ngrok.com/endpoints

Journalctl은 명령의 전체 로그도 표시하지 않습니다.

그러면 ngrok은 원하는 것을 기록하지 않습니다. 매우 간단합니다. 서비스 파일에서 실행된 명령의 표준 출력이 찾고 있는 것입니다 journalct -u ngrok.service. 아무것도 없으면 아직 인쇄되지 않았다는 의미입니다.

관련 정보