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/init
tampaknya 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 ef
menunjukkan 2 proses aktif, keduanya disebut avahi-daemon
, dan PPID
yang pertama avahi-daemon
memang 1
, proses kedua hanyalah anak dari yang pertama. The PPID
= 1
adalah 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/service
tampaknya 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-daemon
hal 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}.d
pada tahap ini, tetapi sekarang saya tidak terlalu yakin. Apa sebenarnya yang memulai binatang ini? Bagaimana cara menonaktifkannya tanpa apt-get remove
atau 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
A
untuk usaha!