Как я могу отключить avahi-daemon?


39

Как я могу отключить 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)

a ps -efww efпоказывает 2 активных процесса, оба вызваны 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`)

и при этом он не использует слишком много циклов ЦП, исходя из быстрого взгляда на htop.

Я написал это в одной строке, чтобы увидеть, будет ли он загружен процессором в течение одной минуты, и никогда не будет, но дайте мне знать, если есть лучшие способы проверить это:

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

9
Aза усилия!
Джефф

Ответы:


22

Upstart сценарии запуска живут в /etc/init, где вы можете найти avahi-daemon.conf. Все вещи в списке initctl listсоответствуют сценариям /etc/init, и они не являются исполняемыми, поэтому вы findих пропустили.

Чтобы отключить службу, контролируемую Upstart, см. Поваренную книгу Upstart по отключению служб : добавьте #в start onстроку или используйте файлы переопределения (пример:) sudo sh -c "echo manual > /etc/init/avahi-daemon.override".


или закомментируйте всю start onстрофу, чтобы быть техническим. Я закомментировал три строки, например.
noobninja

Лучше использоватьservice avahi-daemon stop
Мартин ван Везель

16
sudo systemctl disable avahi-daemon

работал для меня на Ubuntu Gnome 15.10


2
Вы также можете запустить «sudo systemctl stop avahi-daemon», чтобы немедленно остановить его. Это настоящий ответ на вопрос.
EnzoR

8

Я обнаружил, что даже если я остановлю avahi-daemonavahi-daemon.socket), Firefox всегда перезапускает его. Тем не менее, это работает, и отключает этот надоедливый демон навсегда:

apt-get remove avahi-daemon

Какое отношение Firefox имеет к этому вопросу?
Mxx

2
@Mxx firefox просто запускает сокет, который перезапускает Avahi. Мне пришлось также удалить его, чтобы wget и curl не использовали его.
qwertzguy

радикальное решение, но быстрое и эффективное!
andilabs

Прочитайте все ответы, посчитав это шуткой, попробовав другие безрезультатно, наконец-то воспользовавшись этим и проголосовав за него
golimar

5

Вам может не потребоваться остановить его запуск при загрузке ПК, но, возможно, помешать ему, respawnкак это происходит, когда вы его убиваете.

Так что, просто закомментируйте respawnв/etc/init/avahi-daemon.conf

Убить этот процесс всегда не удавалось, поэтому не смог airmon-ng checkпройти. Комментируя возрождение, он убивает и никогда не возвращается, охотясь на меня.


1

сервис avahi-daemon stop

Использовать этот. Творит чудеса.

Затем используйте airmon-ng check wlo1 для проверки перекрывающихся сервисов. Вы не должны найти ни одного.


0

Как насчет использования

SysV-RC-конф

Для этих вещей? Это очень удобно!

(т.е. сначала установите его с помощью apt-get, а затем запустите как sudo)


0

Просто использовал это и отлично работает на Ubuntu 16.04

service avahi-daemon stop


Я знаю, что ОП использует эту строку, но чтобы подвести итог тому, кто ищет простую команду (как я).


0

Просто очисти это. Или отключите его в rc3.d, rc4.d и rc5.d, так как su / root

apt-get purge avahi-daemon

да

Чем это должно быть от вашей системы. Проверьте ваш /etc/rc3.d и другие, и он должен быть пропущен при запуске.

Не используйте systemd для отключения, лучший способ - удалить или изменить скрипт выполнения на K вместо S в слоях выполнения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.