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/init
wydaje 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 ef
pokazuje 2 aktywne procesy, oba nazywane avahi-daemon
, a PPID
pierwszy z nich avahi-daemon
jest rzeczywiście 1
, drugi proces jest tylko dzieckiem pierwszego. PPID
= 1
Jest 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/service
wydaje 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-daemon
rzecz jest uruchamiana przy zmianach stanu sieci? Czy istnieje lepszy sposób na wyszukiwanie plików binarnych uruchamianych automatycznie w systemie?
rc{3,5}.d
Na 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 remove
lub 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
A
za wysiłek!Odpowiedzi:
Skrypty startowe Upstart są dostępne w
/etc/init
, gdzie można znaleźćavahi-daemon.conf
. Wszystkie elementy wymienione winitctl list
dopasowaniu do skryptów w/etc/init
, i nie są wykonywalne, więcfind
je przegapiłeś.Aby wyłączyć usługę kontrolowaną przez Upstart, zobacz Książka kucharska Upstart na temat wyłączania usług : dodaj
#
dostart on
linii lub użyj plików zastępujących (przykład:)sudo sh -c "echo manual > /etc/init/avahi-daemon.override"
.źródło
start on
zwrotkę, aby być technicznym. Na przykład skomentowałem trzy linie.service avahi-daemon stop
pracował dla mnie na Ubuntu Gnome 15.10
źródło
Przekonałem się, że nawet jeśli przestanę
avahi-daemon
(iavahi-daemon.socket
), Firefox zawsze go ponownie uruchomi. Działa to jednak i powoduje trwałe wyłączenie tego denerwującego demona:źródło
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
respawn
w/etc/init/avahi-daemon.conf
Zabicie tego procesu zawsze kończyło się niepowodzeniem, więc nie udało
airmon-ng check
się przejść. Komentując odrodzenie, zabija i nigdy nie wraca na mnie.źródło
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.
źródło
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)
źródło
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).
źródło
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.
źródło