我之前使用一款名为 Prometheus 的工具来监控虚拟机上的容器。现在我想删除它,但似乎不可能。
nima@caliper-latest:~/caliper$ sudo lsof -n -i4TCP:9090
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
prometheu 10171 prometheus 5u IPv4 127446 0t0 TCP 127.0.0.1:45670->127.0.0.1:9090 (ESTABLISHED)
prometheu 10171 prometheus 7u IPv4 132766 0t0 TCP 127.0.0.1:45674->127.0.0.1:9090 (ESTABLISHED)
prometheu 10171 prometheus 8u IPv6 133455 0t0 TCP 127.0.0.1:9090->127.0.0.1:45674 (ESTABLISHED)
prometheu 10171 prometheus 10u IPv6 133453 0t0 TCP 127.0.0.1:9090->127.0.0.1:45670 (ESTABLISHED)
然后我杀死 PID 并立即检查,它又启动了另一个进程:
nima@caliper-latest:~/caliper$ sudo kill -9 10171
nima@caliper-latest:~/caliper$ sudo lsof -n -i4TCP:9090
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
prometheu 10428 prometheus 5u IPv4 128485 0t0 TCP 127.0.0.1:45776->127.0.0.1:9090 (ESTABLISHED)
prometheu 10428 prometheus 7u IPv4 132877 0t0 TCP 127.0.0.1:45778->127.0.0.1:9090 (ESTABLISHED)
prometheu 10428 prometheus 8u IPv6 132878 0t0 TCP 127.0.0.1:9090->127.0.0.1:45778 (ESTABLISHED)
prometheu 10428 prometheus 11u IPv6 134235 0t0 TCP 127.0.0.1:9090->127.0.0.1:45776 (ESTABLISHED)
我尝试了其他命令,例如 killall 等,但没有成功。有什么办法可以解决这个问题吗?
答案1
正如@DanielB所说,你必须使用系统机制来停止或启动服务。
在 Linux 下,sysvinit 样式,调用/etc/init.d/prometheus stop
是停止服务的官方正确方法。在 Linux 下,systemd 样式,/etc/init.d/prometheus stop
也可以实现。如果没有,您将必须使用systemctl stop <the service name>
。
我猜测你的系统正在使用,systemd
因为 sysvinit 没有实现重新生成被终止的进程...