Làm cách nào tôi có thể vô hiệu hóa avahi-daemon và bạn có thể giải thích cho tôi cách nó chạy nếu nó xuất hiện dưới dạng dịch vụ nhưng nó không có trong RCN.d?
Bạn có thể dừng đọc ở đây. Trong thực tế, xin vui lòng làm trừ khi bạn muốn DẠY một số Ubuntu. Câu hỏi trên phải đủ rõ ràng để được trả lời. Phần còn lại chỉ là tôi kêu gọi một số cách có cấu trúc hơn để tìm cách đi vòng quanh Ubuntu. Tôi ít nhiều có thể sử dụng các hệ thống "giống như UNIX" khác.
Tôi là người mới bắt đầu nên nếu tôi hành động vô nghĩa, hãy xem tôi là WTF hàng ngày của bạn nhưng làm ơn giúp tôi cải thiện.
Tại mỗi lần khởi động, /sbin/init
dường như đang khởi chạy một quá trình được gọi làavahi-daemon
# initctl list | grep avahi
avahi-daemon start/running, process 1280
là người dùng avahi
# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)
a ps -efww ef
cho thấy 2 quá trình đang hoạt động, cả hai được gọi avahi-daemon
và thực tế PPID
đầu tiên avahi-daemon
là 1
quá trình thứ hai chỉ là con của quy trình đầu tiên. Các PPID
= 1
là những gì làm cho tôi nghĩ rằng đây là tính năng tự động bắt đầu.
Tùy chọn:
Tôi thực sự không biết làm thế nào để kiểm tra đúng những gì được thực thi khi khởi động hệ thống, nghĩ về nó.
Đây có phải là cách để có được một danh sách các dịch vụ chạy khi khởi động? initctl list | sort
dù sao, tôi dường như có thể tạm thời dừng "dịch vụ" này thông qua lệnh này:
service avahi-daemon stop
hoặc thực sự lệnh này
/etc/init.d/avahi-daemon stop
trực tiếp, đó là những gì điều này /usr/sbin/service
dường như đang sử dụng:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
Khi được khởi chạy, tập lệnh nhắc nhở tôi rằng tôi đang kiểm soát dịch vụ "Khởi động" và tôi nên sử dụng lệnh gọi đơn giản hơn stop avahi-daemon
. Tôi đoán tôi sẽ cần học về Upstart nhưng bây giờ, tất cả những gì tôi cần học là thế này:
Làm cách nào để tắt dịch vụ trong Ubuntu?
Đây là những gì tôi đã thử (đây có phải là cách thích hợp để làm điều đó hay không?):
update-rc.d avahi-daemon disable
nhưng nó phàn nàn:
System start/stop links for /etc/init.d/avahi-daemon do not exist
Vì vậy, tôi đã đi săn đường dẫn đến nhị phân:
# 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"
đây là cái gì
/usr/sbin/avahi-daemon
và bất cứ điều gì có thể được coi là "tập tin thực thi" trong etc
:
find /etc -type f -name '*avahi*' -perm -u+x
nghĩ rằng tôi sẽ tìm thấy các kịch bản khởi động trong /etc/rcN.d
. Tôi đã tìm thấy những thứ khác thay thế:
/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
Có vẻ như avahi-daemon
điều này được đưa ra trên các thay đổi trạng thái mạng? Có cách nào tốt hơn để săn lùng nhị phân tự động bắt đầu trên một hệ thống không?
Tôi thường sẽ xóa sạch các liên kết trong nhiều rc{3,5}.d
giai đoạn khác nhau nhưng bây giờ tôi không chắc lắm. Chính xác thì cái gì bắt đầu con thú này? Làm thế nào để vô hiệu hóa nó mà không apt-get remove
hoặc apt-get purge
?
Nó không có quá nhiều tài nguyên mở, theo như tôi có thể thấy:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
Nó cũng không sử dụng quá nhiều chu kỳ CPU, dựa trên cái nhìn nhanh chóng htop
.
Tôi đã viết một lớp lót này để xem liệu nó có thú vị với CPU sử dụng trong khoảng thời gian một phút không, và nó không bao giờ làm điều đó, nhưng hãy cho tôi biết nếu có những cách tốt hơn để kiểm tra xem:
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
cho nỗ lực!