我有一个守护进程,称之为whatverd
,在 TCP 端口 11111 上运行。它基本上是一个 http 服务器,但它不执行任何类型的日志记录或调试。它仅通过 http(s) 响应中的 JSON 返回查询结果,就像普通的 Web 服务器一样。如何捕获 http(s) 请求和响应并将其写入本地文件?我的选择似乎是:
- 修改源代码,用我根本不懂的语言。
- 运行某种 http 代理。
- 运行
tcpdump
并将输出重定向到文件。
有没有明显的“正确”方法来做到这一点?谢谢。
附:它在 Debian Jessie (8) 上运行,我有 root,我可以修改whateverd
侦听的 TCP 端口号。
答案1
我只需利用 systemd 来实现此目的,并为您的守护进程服务创建一个单元文件whatverd
.
$ cat /etc/systemd/system/whatverd.service
[Unit]
Description=whatverd
[Service]
ExecStart=/bin/bash -c "<cmd to run whatverd>"
[Install]
WantedBy=multi-user.target
然后启用/启动它:
$ sudo systemctl daemon-reload
$ sudo systemctl enable whatverd
$ sudo systemctl start whatverd
$ sudo systemctl status whatverd
现在,通过此设置,您可以通过命令使用journald journalctl
。