Avahi-daemon'u nasıl devre dışı bırakabilirim ve bir hizmet olarak gözüktüğü halde rcN.d'de olmadığını bana nasıl çalıştığını açıklayabilir misiniz?
Burada okumayı bırakabilirsin. Aslında, lütfen bir noob bazı Ubuntu öğretmek istemediğiniz sürece yapın. Yukarıdaki sorunun cevaplanacak kadar açık olması gerekir. Gerisi sadece benim Ubuntu etrafında bir yolunu bulmak için daha yapılandırılmış bir yol için arıyorum. Diğer "UNIX benzeri" sistemleri daha az kullanabiliyorum.
Ben bir acemiyim, bu yüzden saçma sapan davranırsam, günlük WTF'nizi düşünün ama gelişmeme yardım edin, lütfen.
Her açılışta, /sbin/init
denilen bir işlemi başlatıyor gibi görünüyoravahi-daemon
# initctl list | grep avahi
avahi-daemon start/running, process 1280
kullanıcı olarak avahi
# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)
Bir ps -efww ef
2 işlem aktif gösterir, hem de adı avahi-daemon
ve PPID
ilk avahi-daemon
gerçekten de 1
ikinci işlem birinci bir çocuk. PPID
= Bunun 1
otomatik olarak başladığını düşündüren şey.
İsteğe bağlı olarak:
Sistem başlangıcında ne yapıldığını, nasıl düşünüleceğini doğru şekilde kontrol etmeyi gerçekten bilmiyorum.
Başlangıçta çalışan hizmetlerin listesini alma yolu bu mu? initctl list | sort
Neyse, bu "hizmeti" bu komutla geçici olarak durdurabilirim:
service avahi-daemon stop
ya da gerçekten bu komut
/etc/init.d/avahi-daemon stop
doğrudan, bunun ne /usr/sbin/service
kullandığı görünüyor:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
Başlatıldığında, komut dosyası bana bir "Upstart" hizmetini kontrol ettiğimi ve daha basit bir çağrı kullanmam gerektiğini hatırlattı stop avahi-daemon
. Sanırım Upstart hakkında bir şeyler öğrenmem gerekecek ama şimdilik öğrenmem gereken tek şey bu:
Ubuntu'da hizmetleri nasıl devre dışı bırakabilirim?
İşte ne denedim (bu yapmanın doğru yolu olmalı mı, değil mi?):
update-rc.d avahi-daemon disable
ama şikayet ediyor:
System start/stop links for /etc/init.d/avahi-daemon do not exist
bu yüzden ikiliye giden yolu aramaya gittim:
# 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"
ki bu:
/usr/sbin/avahi-daemon
ve "çalıştırılabilir dosya" olarak kabul edilebilecek herhangi bir şey etc
:
find /etc -type f -name '*avahi*' -perm -u+x
Başlangıç komut dosyalarını bulacağımı düşünüyorum /etc/rcN.d
. Bunun yerine başka şeyler buldum:
/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
bu avahi-daemon
durum ağ durumu değişikliklerinde başlatılıyor gibi görünüyor ? Bir sistemde otomatik olarak başlatılan ikili dosyaları avlamanın daha iyi bir yolu var mı?
Normalde rc{3,5}.d
bu noktada çeşitli sembolik sembolik bağlantıları yok ederdim ama şimdi pek emin değilim. Bu canavara tam olarak ne başlıyor? Olmadan apt-get remove
veya nasıl devre dışı bırakılır apt-get purge
?
Görebildiğim kadarıyla çok fazla açık kaynağı yok:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
ne de hızlı bir bakışta dayalı çok fazla CPU döngüsü kullanmaz htop
.
Bu bir liner'ı bir dakikalık bir süre zarfında CPU kullanımlarında korkak olup olmadığını görmek için yazdım ve hiçbir zaman yapmıyor, ancak bunu kontrol etmenin daha iyi yolları olup olmadığını bana bildirin:
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
çaba için!