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

Как я могу отключить avahi-daemon и можете ли вы объяснить мне, как он работает, если он отображается как служба, но его нет в rcN.d?


Вы можете прекратить читать здесь. На самом деле, пожалуйста, сделайте это, если только вы не хотите НАУЧИТЬ новичка какой-нибудь Ubuntu. Приведенный выше вопрос должен быть достаточно ясен, чтобы на него можно было ответить. Остальное - это просто мой призыв к какому-то более структурированному способу ориентироваться в Ubuntu. Я могу более или менее использовать другие "UNIX-подобные" системы.

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

При каждой загрузке, /sbin/init кажется, он запускает процесс, называемый avahi-daemon

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

как пользователь avahi

# id avahiuid=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"

При запуске скрипт напоминает мне, что я управляю службой "Выскочки" и что я должен использовать более простой вызов stop avahi-daemon. Я предполагаю, что мне нужно будет узнать о Выскочке, но пока все, что мне нужно узнать, это это:

как мне отключить службы в 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 abovereadlink "/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
sudo systemctl disable avahi-daemon

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

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

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

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

apt-get remove avahi-daemon

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

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

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

служба avahi-остановка демона

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

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

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

systemctl mask avahi-daemon.socketsystemctl disable avahi-daemonsystemctl stop avahi-daemon

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

sysv-rc-conf

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

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

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

service avahi-daemon stop


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

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

apt-get purge avahi-демон

да

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

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

А за усилия!