如何禁用avahi-daemon?

我怎样才能禁用avahi-daemon并且你可以向我解释一下它是如何运行的,但它不是在rcN.d中吗?


你可以在这里停止阅读。 事实上,除非你想教一个菜鸟一些Ubuntu,否则请做。 上面的问题应该足够明确,以便得到回答。 剩下的只是我呼吁一些更有条理的方法来找到一个绕Ubuntu的方式。 我可以或多或少地使用其他“类UNIX”系统。

我是一名初学者,所以如果我采取无意义的行为,请考虑我每日的WTF,但请帮助我改进。

在每次启动时, /sbin/init似乎都在启动一个名为avahi-daemon

 # initctl list | grep avahi avahi-daemon start/running, process 1280 

作为用户avahi

 # id avahi uid=107(avahi) gid=118(avahi) groups=118(avahi) 

ps -efww ef显示2个进程处于活动状态,都称为avahi-daemon ,第一个avahi-daemonPPID确实为1 ,第二个进程只是第一个进程的子进程。 PPID = 1是让我觉得这是自动启动的原因。


可选:

我真的不知道如何正确检查在系统启动时执行的内容,并考虑它。

这是获取启动时运行的服务列表的方法吗? initctl list | sort


无论如何,我似乎能够通过这个命令暂时停止这个“服务”:

 service avahi-daemon stop 

或者确实是这个命令

 /etc/init.d/avahi-daemon stop 

直接,这是/usr/sbin/service似乎使用的:

 env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" 

启动时,脚本提醒我,我正在控制一个“Upstart”服务,并且我应该使用更简单的调用stop avahi-daemon 。 我想我需要了解Upstart,但就目前而言,我需要学习的是:

如何在Ubuntu中禁用服务?

这是我尝试过的(这应该是正确的方法,或者不是吗?):

 update-rc.d avahi-daemon disable 

但它抱怨说:

 System start/stop links for /etc/init.d/avahi-daemon do not exist 

所以我去寻找二进制的路径:

 # Let me know if there is a better way to get the path above readlink "/proc/$(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)/exe" 

这是这样的:

 /usr/sbin/avahi-daemon 

以及任何可以被视为“可执行文件”的东西:

 find /etc -type f -name '*avahi*' -perm -u+x 

我想在/etc/rcN.d找到启动脚本。 我找到了其他的东西:

 /etc/dhcp/dhclient-exit-hooks.d/zzz_avahi-autoipd /etc/dhcp/dhclient-enter-hooks.d/avahi-autoipd /etc/resolvconf/update-libc.d/avahi-daemon /etc/network/if-up.d/avahi-autoipd /etc/network/if-up.d/avahi-daemon /etc/network/if-down.d/avahi-autoipd /etc/avahi/avahi-autoipd.action 

似乎这个avahi-daemon东西正在推出网络状态变化? 有没有更好的方法来搜索在系统上自动启动的二进制文件?

在这个阶段我通常会删除各种rc{3,5}.d中的符号链接,但现在我不太确定。 究竟是什么引发了这头野兽? 如何在没有apt-get removeapt-get purge情况下禁用它?

据我所知,它没有太多资源开放:

 lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`) 

基于对htop的快速浏览,它也不会使用太多的CPU周期。

我写了这个单行,看它是否在一分钟的时间内在CPU util上变得很时髦,而且从来没有,但是如果有更好的方法可以检查:

 for i in {1..59}; do ps -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`) --no-headers -o pcpu; sleep 1; done 

新手启动脚本位于/etc/init ,您可以在其中找到avahi-daemon.confinitctl list中列出的所有内容都与/etc/init脚本匹配,并且它们不可执行,因此您的find错过了它们。

要禁用Upstart控制的服务,请参阅关于禁用服务的Upstart cookbook :添加#以在线start on ,或使用覆盖文件(例如: sudo sh -c "echo manual > /etc/init/avahi-daemon.override" )。

 sudo systemctl disable avahi-daemon 

在Ubuntu Gnome 15.10上为我工作

我发现即使我停止avahi-daemon (和avahi-daemon.socket ),Firefox avahi-daemon.socket重新启动它。 但是,这可以工作,并永久禁用这个烦人的守护进程:

 apt-get remove avahi-daemon 

你可能不需要在PC启动时阻止它启动,但是当你杀死它时可能会阻止它respawn

所以,只需在/etc/init/avahi-daemon.conf注释掉respawn

杀死该进程总是失败,因此无法通过airmon-ng check 。 在评论重生时,它会杀死并且永远不会回来追捕我。

如何使用

SYSV-RC-conf的

对于这些事情? 它非常方便!

(即先用apt-get安装,然后以sudo身份运行)

刚刚使用过,在Ubuntu 16.04上运行正常

service avahi-daemon stop


我知道OP使用这一行,但总结一下谁在寻找一个简单的命令(比如我自己)。

服务avahi-daemon停止

用这个。 令人惊奇的是。

然后使用airmon-ng检查wlo1来检查重叠的服务。 你应该找不到。

只是清除它。 或者在rc3.d,rc4.d和rc5.d中禁用它,所以su / root

apt-get purge avahi-daemon

它应该是你的系统。 检查你的/etc/rc3.d和其他人,它应该从启动时消失。

不要使用systemd for disable最好的方法是在运行层中删除或更改运行脚本到K而不是S.