Bagaimana saya bisa menonaktifkan avahi-daemon?

39

Bagaimana saya bisa menonaktifkan avahi-daemon dan dapatkah Anda menjelaskan kepada saya cara kerjanya jika muncul sebagai layanan tetapi tidak ada di rcN.d?


Anda bisa berhenti membaca di sini. Bahkan, silakan lakukan kecuali jika Anda ingin MENGAJAR noob beberapa Ubuntu. Pertanyaan di atas harus cukup jelas untuk dijawab. Sisanya hanya saya yang memanggil beberapa cara terstruktur untuk menemukan jalan di Ubuntu. Saya kurang lebih dapat menggunakan sistem "mirip UNIX" lainnya.

Saya seorang pemula jadi jika saya bertindak tidak masuk akal, anggap saya sebagai WTF harian Anda, tetapi tolong bantu saya meningkatkannya.

Di setiap boot, /sbin/inittampaknya akan meluncurkan proses yang disebutavahi-daemon

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

sebagai pengguna avahi

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

a ps -efww efmenunjukkan 2 proses aktif, keduanya disebut avahi-daemon, dan PPIDyang pertama avahi-daemonmemang 1, proses kedua hanyalah anak dari yang pertama. The PPID= 1adalah apa yang membuat saya berpikir ini adalah auto-dimulai.


Opsional:

Saya tidak benar-benar tahu cara memeriksa dengan benar apa yang dijalankan pada startup sistem, memikirkannya.

Apakah ini cara untuk mendapatkan daftar layanan yang berjalan saat startup? initctl list | sort


Lagi pula, saya tampaknya dapat menghentikan sementara "layanan" ini melalui perintah ini:

service avahi-daemon stop

atau memang perintah ini

/etc/init.d/avahi-daemon stop

secara langsung, yang /usr/sbin/servicetampaknya digunakan:

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

Ketika diluncurkan, skrip mengingatkan saya bahwa saya mengendalikan layanan "pemula", dan bahwa saya harus menggunakan doa yang lebih sederhana stop avahi-daemon. Saya kira saya perlu belajar tentang pemula, tetapi untuk sekarang, yang perlu saya pelajari adalah ini:

bagaimana cara menonaktifkan layanan di Ubuntu?

Inilah yang saya coba (ini seharusnya cara yang tepat untuk melakukannya, atau bukan?):

update-rc.d avahi-daemon disable

tapi itu mengeluh:

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

jadi saya pergi mencari jalan menuju biner:

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

yang ini:

/usr/sbin/avahi-daemon

dan apa pun yang dapat dianggap sebagai "file yang dapat dieksekusi" di etc:

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

berpikir saya akan menemukan skrip startup di /etc/rcN.d. Saya malah menemukan hal-hal lain:

/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

Sepertinya avahi-daemonhal ini sedang diluncurkan pada perubahan status jaringan? Apakah ada cara yang lebih baik untuk memburu binari secara otomatis dimulai pada suatu sistem?

Saya biasanya akan menghapus symlink di berbagai rc{3,5}.dpada tahap ini, tetapi sekarang saya tidak terlalu yakin. Apa sebenarnya yang memulai binatang ini? Bagaimana cara menonaktifkannya tanpa apt-get removeatau apt-get purge?

Itu tidak memiliki terlalu banyak sumber daya terbuka, sejauh yang saya bisa lihat:

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

juga tidak menggunakan siklus CPU terlalu banyak, berdasarkan pandangan sekilas htop.

Saya menulis ini satu-liner untuk melihat apakah itu berjalan funky pada util CPU selama satu menit, dan itu tidak pernah terjadi, tetapi beri tahu saya jika ada cara yang lebih baik untuk memeriksa itu:

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
Robottinosino
sumber
9
Auntuk usaha!
Geoff

Jawaban:

22

Skrip startup pemula tinggal /etc/init, di mana Anda dapat menemukan avahi-daemon.conf. Semua hal yang tercantum initctl listcocok dengan skrip /etc/init, dan mereka tidak dapat dieksekusi, sehingga Anda findmelewatkannya.

Untuk menonaktifkan layanan Upstart dikendalikan, lihat Upstart masak di menonaktifkan layanan : baik menambah #ke start onbaris, atau file penggunaan menimpa (misalnya: sudo sh -c "echo manual > /etc/init/avahi-daemon.override").

Tuminoid
sumber
atau komentar seluruh start onbait, untuk menjadi teknis. Saya berkomentar tiga baris, misalnya.
noobninja
Lebih baik digunakanservice avahi-daemon stop
Martijn van Wezel
16
sudo systemctl disable avahi-daemon

bekerja untuk saya di Ubuntu Gnome 15.10

Databits
sumber
2
Anda juga dapat menjalankan "sudo systemctl stop avahi-daemon" untuk segera menghentikannya. Ini adalah jawaban nyata untuk pertanyaan itu.
EnzoR
8

Saya menemukan bahwa meskipun saya berhenti avahi-daemon(dan avahi-daemon.socket), Firefox selalu memulai ulang. Namun, ini berhasil, dan menonaktifkan daemon yang mengganggu ini secara permanen:

apt-get remove avahi-daemon
Peter
sumber
Apa hubungannya firefox dengan pertanyaan ini?
Mxx
2
@Mxx firefox baru saja memicu soket yang memulai kembali Avahi. Saya harus uninstall juga untuk membuat wget dan curl tidak menggunakannya.
qwertzguy
solusi drastis, tetapi cepat dan berhasil!
andilabs
Baca semua jawaban, menganggap ini sebagai lelucon, mencoba yang lain tetapi tidak berhasil, akhirnya menggunakan yang ini dan meningkatkannya
golimar
5

Anda mungkin tidak perlu menghentikannya dari memulai ketika PC boot, tetapi mungkin mencegahnya respawnseperti itu, ketika Anda membunuhnya.

Jadi, cukup beri komentar respawndi/etc/init/avahi-daemon.conf

Membunuh proses itu selalu gagal, jadi tidak bisa airmon-ng checkdilewati. Mengomentari respawning, itu membunuh dan tidak pernah kembali memburuku.

KhoPhi
sumber
1

layanan avahi-daemon berhenti

Gunakan ini. Keajaiban bekerja.

Kemudian gunakan airmon-ng check wlo1 untuk memeriksa layanan yang tumpang tindih. Anda seharusnya tidak menemukannya.

ARNAB BISWAS
sumber
0

Bagaimana kalau menggunakan

sysv-rc-conf

Untuk benda ini? Ini sangat berguna!

(mis. instal dulu dengan apt-get dan jalankan sebagai sudo)

El Sampsa
sumber
0

Hanya menggunakan ini dan berfungsi dengan baik di Ubuntu 16.04

service avahi-daemon stop


Saya tahu OP menggunakan baris ini, tetapi untuk meringkas siapa yang mencari perintah sederhana (seperti saya).

jpenna
sumber
0

Bersihkan saja. Atau nonaktifkan di rc3.d, rc4.d, dan rc5.d Jadi sebagai su / root

apt-get purge avahi-daemon

iya nih

Daripada seharusnya mematikan sistem Anda. Periksa /etc/rc3.d Anda dan orang lain dan itu harus hilang dari startup.

Jangan gunakan systemd untuk menonaktifkan cara terbaik adalah menghapus atau mengubah skrip naskah menjadi K alih-alih S di lapisan jalankan.

apel
sumber