我如何禁用avahi守护程序,如果它作为服务出现但不在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)
a ps -efww ef
显示了两个处于活动状态的进程,都称为avahi-daemon
,PPID
第一个avahi-daemon
确实是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
以及以下任何可被视为“可执行文件”的内容etc
:
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 remove
或如何禁用它apt-get purge
?
据我所知,它没有打开太多的资源:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
乍一看,它也不会使用太多的CPU周期htop
。
我写了这个单行代码,看一分钟它是否在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
A
努力!