Jak mogę wyłączyć demona avahi?


39

Jak mogę wyłączyć demona avahi i czy możesz mi wyjaśnić, jak działa, jeśli pojawia się jako usługa, ale nie ma go w rcN.d?


Możesz przestać czytać tutaj. W rzeczywistości rób to, chyba że chcesz NAUCZYĆ trochę Ubuntu. Powyższe pytanie powinno być wystarczająco jasne, aby uzyskać odpowiedź. Reszta to tylko ja wzywający do bardziej uporządkowanego sposobu znalezienia sposobu na obejście Ubuntu. Mogę mniej więcej używać innych systemów „podobnych do UNIX”.

Jestem początkującym, więc jeśli działam bezsensownie, uważaj mnie za swoją codzienną WTF, ale pomóż mi się poprawić, proszę.

Przy każdym rozruchu /sbin/initwydaje się, że uruchamia proces o nazwieavahi-daemon

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

jako użytkownik avahi

# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)

a ps -efww efpokazuje 2 aktywne procesy, oba nazywane avahi-daemon, a PPIDpierwszy z nich avahi-daemonjest rzeczywiście 1, drugi proces jest tylko dzieckiem pierwszego. PPID= 1Jest to, co sprawia, że to było auto zaczęło.


Opcjonalnie:

Naprawdę nie wiem, jak właściwie sprawdzić, co jest wykonywane podczas uruchamiania systemu, myśląc o tym.

Czy w ten sposób można uzyskać listę usług uruchamianych podczas uruchamiania? initctl list | sort


w każdym razie wydaje mi się, że mogę tymczasowo zatrzymać tę „usługę” za pomocą tego polecenia:

service avahi-daemon stop

lub rzeczywiście to polecenie

/etc/init.d/avahi-daemon stop

bezpośrednio, co /usr/sbin/servicewydaje się używać:

env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"

Po uruchomieniu skrypt przypomina mi, że kontroluję usługę „Upstart” i że powinienem użyć prostszego wywołania stop avahi-daemon. Chyba muszę się nauczyć o Upstart, ale na razie muszę się tylko nauczyć:

Jak mogę wyłączyć usługi w Ubuntu?

Oto, co próbowałem (powinien to być właściwy sposób, czy nie?):

update-rc.d avahi-daemon disable

ale narzeka:

System start/stop links for /etc/init.d/avahi-daemon do not exist

więc poszedłem polować na ścieżkę do pliku binarnego:

# 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"

co to jest:

/usr/sbin/avahi-daemon

i wszystko, co można uznać za „plik wykonywalny” w etc:

find /etc -type f -name '*avahi*' -perm -u+x

myślę, że znajdę w nim skrypty startowe /etc/rcN.d. Zamiast tego znalazłem inne rzeczy:

/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

wydaje się, że ta avahi-daemonrzecz jest uruchamiana przy zmianach stanu sieci? Czy istnieje lepszy sposób na wyszukiwanie plików binarnych uruchamianych automatycznie w systemie?

rc{3,5}.dNa tym etapie normalnie zatarłbym dowiązania symboliczne na różnych etapach, ale teraz nie jestem zbyt pewien. Co dokładnie zaczyna tę bestię? Jak wyłączyć bez apt-get removelub apt-get purge?

O ile widzę, nie ma zbyt wielu otwartych zasobów:

lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)

nie wykorzystuje też zbyt wielu cykli procesora, w oparciu o szybki rzut oka na htop.

Napisałem ten linijka, aby sprawdzić, czy zużywa się procesor w ciągu jednej minuty i nigdy tak nie jest, ale daj mi znać, czy są lepsze sposoby, aby to sprawdzić:

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
Aza wysiłek!
Geoff,

Odpowiedzi:


22

Skrypty startowe Upstart są dostępne w /etc/init, gdzie można znaleźć avahi-daemon.conf. Wszystkie elementy wymienione w initctl listdopasowaniu do skryptów w /etc/init, i nie są wykonywalne, więc findje przegapiłeś.

Aby wyłączyć usługę kontrolowaną przez Upstart, zobacz Książka kucharska Upstart na temat wyłączania usług : dodaj #do start onlinii lub użyj plików zastępujących (przykład:) sudo sh -c "echo manual > /etc/init/avahi-daemon.override".


lub skomentuj całą start onzwrotkę, aby być technicznym. Na przykład skomentowałem trzy linie.
noobninja

Lepiej używaćservice avahi-daemon stop
Martijn van Wezel

16
sudo systemctl disable avahi-daemon

pracował dla mnie na Ubuntu Gnome 15.10


2
Możesz także uruchomić „sudo systemctl stop avahi-daemon”, aby natychmiast go zatrzymać. To jest prawdziwa odpowiedź na pytanie.
EnzoR

8

Przekonałem się, że nawet jeśli przestanę avahi-daemon(i avahi-daemon.socket), Firefox zawsze go ponownie uruchomi. Działa to jednak i powoduje trwałe wyłączenie tego denerwującego demona:

apt-get remove avahi-daemon

Co firefox ma wspólnego z tym pytaniem?
Mxx

2
@Mxx Firefox po prostu wyzwala gniazdo, które ponownie uruchamia Avahi. Musiałem go również odinstalować, aby nie używać wget i curl.
qwertzguy,

drastyczne rozwiązanie, ale szybkie i działające!
andilabs

Przeczytaj wszystkie odpowiedzi, uważam ten żart, wypróbowałem inne bezskutecznie, w końcu skorzystałem z tego i głosowałem za nim
golimar

5

Być może nie będziesz musiał powstrzymywać go przed uruchomieniem podczas uruchamiania komputera, ale być może zapobiegniesz temu respawn, gdy tak się stanie po zabiciu.

Więc po prostu skomentuj respawnw/etc/init/avahi-daemon.conf

Zabicie tego procesu zawsze kończyło się niepowodzeniem, więc nie udało airmon-ng checksię przejść. Komentując odrodzenie, zabija i nigdy nie wraca na mnie.


1

usługa avahi-daemon stop

Użyj tego. Działa cuda.

Następnie użyj airmon-ng check wlo1, aby sprawdzić nakładające się usługi. Nie powinieneś znaleźć żadnego.


0

Co powiesz na używanie

sysv-rc-conf

Za te rzeczy? To bardzo przydatne!

(tzn. najpierw zainstaluj go za pomocą apt-get, a następnie uruchom jako sudo)


0

Właśnie tego użyłem i działa dobrze na Ubuntu 16.04

service avahi-daemon stop


Wiem, że OP używa tej linii, ale w celu podsumowania, kto szuka prostej komendy (jak ja).


0

Po prostu to wyczyść. Lub wyłącz to w rc3.d, rc4.d i rc5.d Tak jak su / root

apt-get purge avahi-daemon

tak

To powinno być wyłączone z twojego systemu. Sprawdź swój plik /etc/rc3.d i inne, a powinien zniknąć ze startu.

Nie używaj systemd do wyłączania. Najlepszym sposobem jest usunięcie lub zmiana skryptu na K zamiast S w warstwach uruchamiania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.