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

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.

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

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
39
задан 25 October 2012 в 00:06

9 ответов

Скрипты запуска 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").

0
ответ дан 25 October 2012 в 00:06
sudo systemctl disable avahi-daemon

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

0
ответ дан 25 October 2012 в 00:06

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

apt-get remove avahi-daemon
0
ответ дан 25 October 2012 в 00:06

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

sysv-rc-conf

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

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

0
ответ дан 25 October 2012 в 00:06

service avahi-daemon stop

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

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

0
ответ дан 25 October 2012 в 00:06

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

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

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

0
ответ дан 25 October 2012 в 00:06

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

service avahi-daemon stop


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

0
ответ дан 25 October 2012 в 00:06

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

apt-get purge avahi-daemon

да

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

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

0
ответ дан 25 October 2012 в 00:06

Вам необходимо замаскировать сокет , чтобы приложения не запускали avahi-daemon :

systemctl mask avahi-daemon.socket
systemctl disable avahi-daemon
systemctl stop avahi-daemon
1
ответ дан 29 December 2019 в 20:09

Другие вопросы по тегам:

Похожие вопросы: