avahi-daemonを無効にするにはどうすればよいですか?


39

avahi-daemonを無効にするにはどうすればよいですか?また、サービスとして表示されてもrcN.dにない場合の実行方法を説明できますか?


ここで読むのをやめることができます。実際、Ubuntuをnoobに教える場合を除き、実行してください。上記の質問は、答えられるほど明確でなければなりません。残りは、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)

ps -efww ef番組アクティブ2つのプロセスは、両方が呼び出されavahi-daemon、そしてPPID第一のはavahi-daemon確かであり1、第二の方法は、最初のわずかの子です。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"

スクリプトを起動すると、「Upstart」サービスを制御していること、およびより単純な呼び出しを使用する必要があることを思い出させますstop avahi-daemon。Upstartについて学ぶ必要があると思いますが、今のところ、学ぶ必要があるのはこれだけです。

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 removeapt-get purge

私が見る限り、あまり多くのリソースが開かれていません:

lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)

また、を一目見ただけでCPUサイクルが多すぎることもありませんhtop

CPU使用率が1分間ファンキーになっているかどうかを確認するためにこのワンライナーを書きましたが、決して機能しませんが、それを確認するより良い方法があるかどうかを教えてください:

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努力して!
ジェフ

回答:


22

Upstartスタートアップスクリプトは/etc/init、ここにありますavahi-daemon.conf。にリストされているものはすべてのinitctl listスクリプトと一致し/etc/init、実行可能ではないため、find見逃しました。

Upstartが制御するサービスを無効にするには、サービスの無効化に関するUpstartクックブックを参照してください:行に追加#するかstart on、オーバーライドファイルを使用します(例:)sudo sh -c "echo manual > /etc/init/avahi-daemon.override"


または、start onスタンザ全体をコメントアウトして、技術的にします。たとえば、3行コメントアウトしました。
-noobninja

使用へのより良いservice avahi-daemon stop
マルタインバンウィーゼル

16
sudo systemctl disable avahi-daemon

Ubuntu Gnome 15.10で私のために働いた


2
「sudo systemctl stop avahi-daemon」を実行して、すぐに停止することもできます。これが質問に対する本当の答えです。
EnzoR

8

Firefox を停止avahi-daemon(およびavahi-daemon.socket)しても、Firefoxは常に再起動することがわかりました。ただし、これは機能し、この迷惑なデーモンを永久に無効にします。

apt-get remove avahi-daemon

firefoxはこの質問と何の関係がありますか?
Mxx

2
@Mxx firefoxは、Avahiを再起動するソケットをトリガーするだけです。wgetとcurlがそれを使用しないようにするためにも、アンインストールする必要がありました。
qwertzguy

抜本的なソリューションですが、高速で動作するものです!
andilabs

すべての回答を読んで、これを冗談だと考え、他の回答は役に立たなかったため、最終的にこの回答を使用して、それを支持しました
golimar

5

PCの起動時に起動を停止する必要はないかもしれませんが、強制終了するときは、PCが起動するのを防ぐことがrespawnできます。

だから、単にコメントアウトrespawn中を/etc/init/avahi-daemon.conf

そのプロセスの強制終了は常に失敗するためairmon-ng check、合格することはできませんでした。リスポーンをコメントアウトすると、殺されて二度と狩りに来ません。


1

サービスアバヒデーモンストップ

これを使って。驚異的です。

次に、airmon-ng check wlo1を使用して、重複するサービスを確認します。Uは何も見つかりません。


0

使い方はどうですか

sysv-rc-conf

これらのために?とても便利です!

(つまり、まずapt-getでインストールしてから、sudoとして実行します)


0

これを使用しただけで、Ubuntu 16.04で正常に動作します

service avahi-daemon stop


OPはこの行を使用しますが、単純なコマンド(自分のような)を検索しているユーザーを要約するために使用します。


0

パージするだけです。または、rc3.d、rc4.d、およびrc5.dで無効にします。

apt-get purge avahi-daemon

はい

それはあなたのシステムから離れるべきです。/etc/rc3.dなどを確認してください。起動時に削除されます。

無効にするためにsystemdを使用しないでください。最良の方法は、実行レイヤーでrunscriptをSではなくKに削除または変更することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.