avahi-daemon을 비활성화하려면 어떻게해야합니까?


39

avahi-daemon을 비활성화하고 서비스로 나타나지만 rcN.d에없는 경우 어떻게 실행되는지 설명 할 수 있습니까?


여기서 읽을 수 없습니다. 사실, 멍청한 놈에게 우분투를 가르치고 싶지 않다면 해주세요. 위의 질문은 대답하기에 충분히 명확해야합니다. 나머지는 우분투에서 자신의 길을 찾는 더 체계적인 방법을 요구하는 것입니다. 다른 "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)

ps -efww ef2 개 프로세스 활성 프로그램은 모두 호출 avahi-daemonPPID의 우선 avahi-daemon참으로 1제 2 공정이 제 단지 자식이다. 는 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줍니다. Upstart에 대해 배워야 할 것 같지만 지금은 알아야 할 것은 다음과 같습니다.

우분투에서 서비스를 어떻게 비활성화합니까?

여기 내가 시도한 것이 있습니다 (적절한 방법이어야합니까, 그렇지 않습니까?).

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`)

또한 한 눈에보기에 너무 많은 CPU주기를 사용하지도 않습니다 htop.

이 1 라이너를 작성하여 1 분 동안 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

우분투 그놈 15.10에서 나를 위해 일했습니다.


2
"sudo systemctl stop avahi-daemon"을 실행하여 즉시 중지 할 수도 있습니다. 이것이 질문에 대한 실제 답변입니다.
EnzoR

8

avahi-daemon(및 avahi-daemon.socket) 중지하더라도 Firefox가 항상 다시 시작 한다는 것을 알았 습니다. 그러나 이것은 작동 하며이 성가신 데몬을 영구적으로 비활성화합니다.

apt-get remove avahi-daemon

파이어 폭스는이 질문과 어떤 관련이 있습니까?
Mxx

2
@Mxx firefox는 소켓을 트리거하여 Avahi를 다시 시작합니다. wget과 curl을 사용하지 않으려면 제거해야했습니다.
qwertzguy

과감한 솔루션이지만 신속하고 효과적인 솔루션!
andilabs

이 답변을 농담으로 간주하고 다른 답변을 시도해 보지 않고 마침내이 답변을 사용하여
찬성

5

PC 부팅시 시동을 중지 할 필요는 없지만 respawn죽일 때와 달리 PC를 차단할 수 있습니다 .

그래서, 그냥 주석 respawn의를/etc/init/avahi-daemon.conf

그 프로세스를 죽이는 것은 항상 실패했기 때문에 airmon-ng check통과 할 수 없었습니다 . 부활을 언급하면서, 그것은 나를 죽이고 다시는 돌아 오지 않습니다.


1

서비스 아바 히 데몬 스톱

이것을 사용하십시오. 경이로움

그런 다음 airmon-ng check wlo1을 사용하여 겹치는 서비스를 확인하십시오. U는 찾을 수 없습니다.


0

사용은 어떻습니까

sysv-rc-conf

이것들 때문에? 매우 편리합니다!

(즉, 먼저 apt-get으로 설치 한 다음 sudo로 실행하십시오)


0

방금 이것을 사용했고 우분투 16.04에서 잘 작동합니다.

service avahi-daemon stop


OP 가이 줄을 사용하지만 간단한 명령을 찾고있는 사람 (나 같은)을 요약하기 위해 알고 있습니다.


0

그냥 버리세요 또는 rc3.d, rc4.d 및 rc5.d에서 su / root와 같이 비활성화하십시오.

apt-get purge 아바 히 데몬

시스템에서 꺼져 있어야합니다. /etc/rc3.d 및 기타를 확인하십시오. 시작시 없어야합니다.

최상의 방법을 비활성화하기 위해 systemd를 사용하지 마십시오. 실행 계층에서 S 대신 runscript를 제거하거나 K로 변경하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.