web-dev-qa-db-ja.com

特定の共有でのgvfsディレクトリ監視の無効化

Syslogのエラーのほぼ75%が

WARNING **: Couldn't create directory monitor on smb://x-gnome-default-workgroup/. Error: Operation not supported by backend

Samba共有の変更を監視する必要はないので、ログをジャンクアップしないように無効にします。私は何をしますか?

3
labyrinth

私は同じ問題に苦しんでいて、GVFS環境変数と関連するdconfキーを変更しようとしましたが、良い結果が得られなかったので、ソースコードを見ることにしました。 daemon/gvfsbackendnetwork.cファイルで次のコードを見つけました:

g_warning ("Couldn't create directory monitor on %s. Error: %s\n",
                   uri, error ? error->message : "");

...質問で説明されている警告を生成しています。ところで、Ubuntu GVFSソースでは同じファイルに2つの場所がありますが、GNOME.orgのgitのエントリの1つは実際にはg_warningではなくg_debugです。 Ubuntuバージョンの両方のg_warning呼び出しをg_debugに変更することにしました。これは、これらの騒々しい警告のsyslogをきれいにするための最小のパッチだからです。

次の手順を再現するには、最初にソースコードリポジトリを有効にする必要があります。次に、システムターミナル(別名bash、sh)で説明されているコマンドを実行します。

# install build tools
Sudo apt-get install build-essential devscripts fakeroot
# install gvfs build dependencies
Sudo apt-get build-dep gvfs

# create temporary directory for the source code and get it via apt
mkdir ~/src; cd ~/src
apt-get source gvfs

# at the moment I've got gvfs-1.28.2 @ Ubuntu 16.04, update the path if you've got another version
# check g_warning entries to be sure what we're editing:
cat ~/src/gvfs-1.28.2/daemon/gvfsbackendnetwork.c | grep g_warning

g_warning( "%sにディレクトリモニターを作成できませんでした。エラー:%s"、

g_warning( "%sにディレクトリモニターを作成できませんでした。エラー:%s"、

# replace g_warning to g_debug as described way above
sed --in-place "s/g_warning/g_debug/g" ~/src/gvfs-1.28.2/daemon/gvfsbackendnetwork.c

# go to the source directory root
cd ~/src/gvfs-1.28.2
# bump version, edit changelog if needed, then save the file
dch -i

次のようになります。

gvfs(1.28.2-1ubuntu1〜16.04.2ubuntu1)未リリース; urgency = medium

  • Syslogを無効化できない警告をデバッグメッセージに変換することで、それらをきれいに保ちます。

    -Habetdin Fri、2018年12月21日20:00:00 +0300

# finally, build the .deb packages
debuild -b -us -uc
# one level up from the source root - to the compiled .deb packages
cd ..
# install them all
Sudo dpkg -i *.deb

最後の注意として、man dpkg-buildpackageで得たデビルドパラメータの説明:

-bバイナリのみのビルドを指定します。ソースファイルはビルドおよび/または配布されません。

-usソースパッケージに署名しません。

-uc .changesファイルに署名しません。

これは問題を解決するための少し汚い方法ですが、適切な組み込みソリューションが見つかりませんでしたので、今のところこれがsyslogを実際にきれいにする唯一の方法です。

2
Habetdin