Как я могу отключить 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
A
за усилия!Ответы:
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
строфу, чтобы быть техническим. Я закомментировал три строки, например.service avahi-daemon stop
работал для меня на Ubuntu Gnome 15.10
источник
Я обнаружил, что даже если я остановлю
avahi-daemon
(иavahi-daemon.socket
), Firefox всегда перезапускает его. Тем не менее, это работает, и отключает этот надоедливый демон навсегда:источник
Вам может не потребоваться остановить его запуск при загрузке ПК, но, возможно, помешать ему,
respawn
как это происходит, когда вы его убиваете.Так что, просто закомментируйте
respawn
в/etc/init/avahi-daemon.conf
Убить этот процесс всегда не удавалось, поэтому не смог
airmon-ng check
пройти. Комментируя возрождение, он убивает и никогда не возвращается, охотясь на меня.источник
сервис avahi-daemon stop
Использовать этот. Творит чудеса.
Затем используйте airmon-ng check wlo1 для проверки перекрывающихся сервисов. Вы не должны найти ни одного.
источник
Как насчет использования
SysV-RC-конф
Для этих вещей? Это очень удобно!
(т.е. сначала установите его с помощью apt-get, а затем запустите как sudo)
источник
Просто использовал это и отлично работает на Ubuntu 16.04
service avahi-daemon stop
Я знаю, что ОП использует эту строку, но чтобы подвести итог тому, кто ищет простую команду (как я).
источник
Просто очисти это. Или отключите его в rc3.d, rc4.d и rc5.d, так как su / root
apt-get purge avahi-daemon
да
Чем это должно быть от вашей системы. Проверьте ваш /etc/rc3.d и другие, и он должен быть пропущен при запуске.
Не используйте systemd для отключения, лучший способ - удалить или изменить скрипт выполнения на K вместо S в слоях выполнения.
источник