ฉันจะปิดการใช้งาน avahi-daemon ได้อย่างไร


39

ฉันจะปิดการใช้งาน 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

9
Aสำหรับความพยายาม!
Geoff

คำตอบ:


21

สคริปต์พุ่งพรวดเริ่มต้นอยู่ในที่ที่คุณสามารถหาได้/etc/init avahi-daemon.confทุกสิ่งที่ระบุไว้ในรายการที่initctl listตรงกับสคริปต์ใน/etc/initและพวกเขาจะไม่สามารถดำเนินการได้ดังนั้นคุณfindพลาดพวกเขา

เพื่อปิดการใช้บริการควบคุมพุ่งพรวดดูตำราอาหารพุ่งพรวดเกี่ยวกับการยกเลิกการให้บริการ : ทั้งเพิ่ม#การstart onโฆษณาหรือการใช้งานไฟล์แทนที่ (ตัวอย่าง: sudo sh -c "echo manual > /etc/init/avahi-daemon.override")


หรือแสดงความคิดเห็นทั้งstart onบทเพื่อเป็นเทคนิค ฉันแสดงความคิดเห็นสามบรรทัดเช่น
noobninja

มันดีกว่าที่จะใช้service avahi-daemon stop
Martijn van Wezel

16
sudo systemctl disable avahi-daemon

ทำงานกับฉันใน Ubuntu Gnome 15.10


2
นอกจากนี้คุณยังสามารถเรียกใช้ "sudo systemctl stop avahi-daemon" เพื่อหยุดทันที นี่คือคำตอบที่แท้จริงสำหรับคำถาม
EnzoR

8

ฉันพบว่าแม้ว่าฉันจะหยุดavahi-daemon(และavahi-daemon.socket) Firefox ก็จะทำการรีสตาร์ทเสมอ อย่างไรก็ตามวิธีนี้ใช้ได้ผลและปิดใช้งาน daemon ที่น่ารำคาญนี้อย่างถาวร:

apt-get remove avahi-daemon

firefox เกี่ยวข้องกับคำถามนี้อย่างไร
Mxx

2
@Mxx firefox เพิ่งเรียกใช้ซ็อกเก็ตที่รีสตาร์ท Avahi ฉันต้องถอนการติดตั้งเช่นกันเพื่อให้ wget และขดไม่ได้ใช้งาน
qwertzguy

วิธีการแก้ปัญหาที่รุนแรง แต่รวดเร็วและทำงานอย่างใดอย่างหนึ่ง!
andilabs

อ่านคำตอบทั้งหมดคิดว่าเรื่องนี้เป็นเรื่องตลกลองอีกข้อหนึ่งเพื่อประโยชน์ไม่ได้ในที่สุดก็ใช้อันนี้และ
อัปเกรด

5

คุณอาจไม่จำเป็นต้องหยุดมันเมื่อเริ่มระบบเมื่อพีซีบู๊ต แต่อาจป้องกันไม่ให้มันทำrespawnอย่างนั้นเมื่อคุณฆ่ามัน

ดังนั้นเพียงแสดงความคิดเห็นrespawnใน/etc/init/avahi-daemon.conf

การฆ่ากระบวนการนั้นล้มเหลวเสมอดังนั้นจึงไม่airmon-ng checkสามารถผ่านได้ การแสดงความคิดเห็นเกี่ยวกับ respawning มันฆ่าและไม่เคยกลับมาตามล่าฉัน


1

บริการ avahi-daemon หยุด

ใช้สิ่งนี้ งานมหัศจรรย์

จากนั้นใช้ airmon-ng check wlo1 เพื่อตรวจสอบบริการที่ทับซ้อนกัน คุณไม่ควรหาใคร


0

วิธีการเกี่ยวกับการใช้

SysV-RC-conf

สำหรับสิ่งเหล่านี้ มันมีประโยชน์มาก!

(เช่นติดตั้งครั้งแรกด้วยฉลาด - รับแล้วเรียกใช้เป็น sudo)


0

เพิ่งใช้มันและทำงานได้ดีบน Ubuntu 16.04

service avahi-daemon stop


ฉันรู้ว่า OP ใช้บรรทัดนี้ แต่เพื่อสรุปว่าใครกำลังค้นหาคำสั่งง่าย ๆ (เช่นตัวฉันเอง)


0

เพียงแค่ล้างมัน หรือปิดการใช้งานใน rc3.d, rc4.d และ rc5.d ดังนั้นในฐานะ su / root

apt-get purge avahi-daemon

ใช่

กว่าที่ควรจะเป็นระบบของคุณ ตรวจสอบ /etc/rc3.d ของคุณและอื่น ๆ และควรจะหายไปจากการเริ่มต้น

อย่าใช้ systemd เพื่อปิดการใช้งานวิธีที่ดีที่สุดคือการลบหรือเปลี่ยน runcript เป็น K แทนที่จะเป็น S ในเลเยอร์การทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.