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!