我有一个运行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.但是,我必须看到ngrok的输出才能得到url。如何从systemd服务中看到像这样的ngrok命令的输出。
~> 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.00PS。journalctl也不显示命令的完整日志。
发布于 2022-04-23 16:31:37
我要看ngrok的输出才能得到url。
一定有更好的办法!这是一个重要的操作属性,不应该仅仅通过stdout可见。我确信Ngrok有某种方式可以从运行中的服务中读取这些信息。我从未使用过ngrok,但我知道它是一种端口转发服务,您可以很容易地使用查询活动端点。
curl \
-H "Authorization: Bearer {API_KEY}" \
-H "Ngrok-Version: 2" \
https://api.ngrok.com/endpointsjournalctl也不显示命令的完整日志。
那你的ngrok就不会记录你想要的东西了。这很简单:从服务文件开始的命令的stdout就是您在journalct -u ngrok.service中看到的。如果它不在里面,它就没有被打印出来。
https://unix.stackexchange.com/questions/700111
复制相似问题