ฉันจะปิดการใช้งาน avahi-daemon ได้อย่างไรและคุณสามารถอธิบายให้ฉันรู้ได้อย่างไรว่ามันทำงานอย่างไรถ้ามันปรากฏเป็นบริการ แต่มันไม่ได้อยู่ใน rcN.d
คุณสามารถหยุดอ่านได้ที่นี่ ในความเป็นจริงโปรดทำถ้าคุณไม่ต้องการสอน Ubuntu คำถามข้างต้นควรชัดเจนเพียงพอที่จะตอบ ที่เหลือเป็นเพียงฉันเรียกร้องให้มีวิธีที่มีโครงสร้างมากขึ้นในการหาทางไปรอบ ๆ Ubuntu ฉันสามารถใช้ระบบ "เหมือน UNIX" มากกว่าหรือน้อยกว่า
ฉันเป็นผู้เริ่มต้นดังนั้นถ้าฉันทำตัวไร้สาระพิจารณา WTF ประจำวันของคุณ แต่ช่วยฉันปรับปรุงหน่อยได้ไหม
ทุกครั้งที่บู๊ต/sbin/init
ดูเหมือนว่าจะเปิดตัวกระบวนการที่เรียกว่าavahi-daemon
# initctl list | grep avahi
avahi-daemon start/running, process 1280
ในฐานะผู้ใช้ avahi
# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)
a ps -efww ef
แสดง 2 โพรเซสที่แอคทีฟ, ทั้งที่ถูกเรียกavahi-daemon
, และโพรเซสPPID
แรกavahi-daemon
นั้นเป็นจริง1
, โพรเซสที่สองเป็นเพียงลูกของโพรเซสแรก. The PPID
= 1
คือสิ่งที่ทำให้ฉันคิดว่านี่เป็นการเริ่มอัตโนมัติ
เลือก:
ฉันไม่รู้วิธีตรวจสอบอย่างถูกต้องว่าอะไรคือสิ่งที่ถูกดำเนินการเมื่อเริ่มต้นระบบคิดเกี่ยวกับมัน
นี่เป็นวิธีรับรายการบริการที่ทำงานเมื่อเริ่มต้นหรือไม่ initctl list | sort
อย่างไรก็ตามฉันดูเหมือนจะสามารถหยุด "บริการ" นี้ชั่วคราวผ่านคำสั่งนี้:
service avahi-daemon stop
หรือคำสั่งนี้แน่นอน
/etc/init.d/avahi-daemon stop
โดยตรงซึ่งเป็นสิ่งที่/usr/sbin/service
ดูเหมือนว่าจะใช้:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
เมื่อเปิดตัวสคริปต์ที่ทำให้ผมนึกถึงว่าผมควบคุมบริการ "พุ่งพรวด" stop avahi-daemon
และว่าผมควรจะใช้การภาวนาที่เรียบง่าย ฉันเดาว่าฉันจะต้องเรียนรู้เกี่ยวกับการพุ่งพรวด แต่ตอนนี้ทั้งหมดที่ฉันต้องเรียนรู้คือ:
ฉันจะปิดการใช้งานบริการใน Ubuntu ได้อย่างไร
นี่คือสิ่งที่ฉันพยายาม (นี่ควรเป็นวิธีที่เหมาะสมในการทำหรือไม่?):
update-rc.d avahi-daemon disable
แต่มันบ่น:
System start/stop links for /etc/init.d/avahi-daemon do not exist
ดังนั้นฉันจึงไปหาเส้นทางไปที่ไบนารี:
# 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"
ซึ่งนี่คือ:
/usr/sbin/avahi-daemon
และสิ่งใดก็ตามที่อาจถูกพิจารณาว่าเป็น "แฟ้มที่ปฏิบัติการได้" ในetc
:
find /etc -type f -name '*avahi*' -perm -u+x
/etc/rcN.d
คิดว่าฉันจะพบสคริปต์เริ่มต้นใน ฉันพบสิ่งอื่นแทน:
/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
ดูเหมือนว่าavahi-daemon
สิ่งนี้จะถูกเปิดตัวในการเปลี่ยนแปลงสถานะของเครือข่าย? มีวิธีที่ดีกว่าในการค้นหาไบนารีเริ่มต้นโดยอัตโนมัติในระบบหรือไม่?
ปกติแล้วฉันจะลบล้างการเชื่อมโยงที่หลากหลายrc{3,5}.d
ในขั้นตอนนี้ แต่ตอนนี้ฉันไม่แน่ใจ สัตว์ร้ายตัวนี้เริ่มต้นอะไรกันแน่? วิธีการปิดการใช้งานได้โดยไม่ต้องapt-get remove
หรือapt-get purge
?
มันไม่ได้เปิดทรัพยากรมากเกินไปเท่าที่ฉันจะเห็น:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
htop
หรือไม่ก็ใช้รอบการทำงานมากเกินไปบนพื้นฐานอย่างรวดเร็วใน
ฉันเขียนหนึ่งซับเพื่อดูว่ามันขี้ขลาดใน CPU ใช้ในช่วงเวลาหนึ่งนาทีและไม่เคยทำ แต่แจ้งให้เราทราบหากมีวิธีที่ดีกว่าในการตรวจสอบว่า:
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
สำหรับความพยายาม!