我正在尝试在专用的 ubuntu 服务器计算机上运行本地 apache 服务器22.04.1 LTS
。但是,我无法启动 apache2。每次我尝试时,sudo systemctl restart apache2
都会被告知启动失败,因为另一个服务正在监听端口 80。
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
apachectl
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
运行后,sudo lsof -i -P -n
我可以看到COMMAND
名为 的程序chipper
正在以 root 身份运行并占用端口 80。
sudo kill [that pid]
可以正常工作,但在我重新启动 apache 之前它又自行启动了。这不是我认识的软件包,并且sudo apt remove chipper
和sudo snap remove chipper
都无济于事。我如何才能找出此服务属于哪个软件包并确定要采取什么操作来释放此端口?
更新:Chipper 是 DDL 的 Escape Pod for Vector 的一部分。虽然我的源问题现在已经解决,但如果可能的话,我仍然想知道如何找到COMMAND
的源包。
更新 2:这个问题背后的想法是仅给出命令名称和 PID 即可找到命令的来源。我能够让 apache 以足够快的速度重新启动以超过端口 80 的占用,并且当它无法运行时,我可以在日志中看到源(因为现在 apache 有端口 80)。最初,我只有一个名为的字段COMMAND
,PID,
所以我认为知道如何找到命令输出的源包会很有用sudo lsof -i -P -n
。这与查找现有文件的源包无关,因为如果我从一开始就有该文件,我就会看到它包含的目录(在这种情况下,在~/wire-pod/
我提出问题之前就已经回答了我的问题)。