service --status-all
显示dnsmasq
前面的 (-) 表示它没有运行。
但当我尝试跑步时,sudo dnsmasq
我收到了消息dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use
因此我检查了正在监听的内容127.0.0.1
并sudo ss -alpn sport = 53 src 127.0.0.1
得到了输出:
TCP | LISTEN | 0 | 32 | 127.0.0.1:53 | 0.0.0.0:* | users:(("dnsmasq",pid=3307,fd=5))
如果它不运行,怎么能听到声音呢?
答案1
请尝试以下步骤:
服务
比较service --status-all
输出
systemctl list-units --type=service
。
监听端口和应用程序
安装net-tools
并显示监听端口列表,包括进程号和名称。nestat
与 类似ss
,但更紧凑:
sudo apt-get install net-tools
sudo netstat -lntp
搜索端口 53 和 dnsmasq 名称。可以dnsmasq
使用两个端口(DNS 和 DHCP)。验证是否列出没有带有 和 端口 53 的监听应用程序dnsmasq
。如果仍然列出一个或两个,则按以下方式显示进程:
ps -ef
ps -aux
最终将整行内容保存在文本文件中,以便稍后进行分析和过滤grep
:
ps -ef > list1.txt
ps -aux > list2.txt
ps -eux > list3.txt
搜索从中获取的进程号netstat
,并按照列表中的父进程获取它们的启动顺序和方式。进程列表将显示进程,dnsmasq
包括配置文件名、路径和其他详细信息。
某些应用程序可以作为服务或独立进程启动因此两个相似的过程之间就有可能通过这种方式发生碰撞。
手动终止不需要的进程以释放监听端口,然后尝试以您需要的方式启动 dnsmasq。
sudo kill -9 <process_number>