Як я можу відключити 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

Створюються запущені сценарії запуску /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
Martijn van Wezel

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 чистка avahi-демон

так

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.