리소스를 많이 소모하고 데이터를 복사하는 Gnome Tracker 데몬을 비활성화하는 것은 예상보다 훨씬 어렵습니다. 저는 최근에 설치된 (안정적인) Debian 11.2를 실행하기 위해 Gnome을 사용하고 있습니다.
내가 찾은 제안 중 하나는 모든 /etc/xdg/autostart/tracker-*.desktop
파일을 편집하여
X-GNOME-Autostart-enabled=false
(그것은 true
)
이것이 누군가에게 효과가 있었다고는 하지만, 옛날에는 안타깝게도 이 변화가 눈에 띄는 효과를 가져오지 못했습니다.
추적기 버전 2를 실행 중이므로 다음도 시도해 보았습니다.
systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
분명히 이 접근 방식은 작동하지만 시스템 로그는 여전히 추적 서비스가 "성공"이라고 보고합니다. 아마도 이러한 항목은 추적 서비스에 대해 systemd가 구성된 방식의 아티팩트일 수 있습니다. "마스크" 접근 방식의 문제점은 추적 데몬을 다시 활성화하는 반대 작업( mask
-> )이 unmask
작동하지 않는다는 것입니다. (네, 지시대로 다시 시작했습니다. 그런데 트래커 데몬이 다시 올라오지 않더군요.)
답변1
나는 같은 문제가 있었습니다.
sudo systemctl --global mask tracker-miner-fs-3.service
sudo systemctl --global mask tracker-xdg-portal-3.service
물론 이렇게 하면 서비스가 다시 시작되는 것을 방지할 수 있습니다.모두user; 그러나 현재 항목을 차단하려면 해당 사용자를 종료해야 합니다.
저는 데비안 시드를 사용하고 있습니다.
답변2
/etc/xdg/autostart/tracker-*.desktop
전체 프로세스는 여러 면에서 오해의 소지가 있는 것으로 나타났습니다 .
추적기 데몬과 이러한 파일 사이에는 일대일 대응이 없습니다. 해당 파일은 2개이지만 데몬은 3개입니다.
나는 시스템 로그를 연구함으로써 이 세 가지 데몬의 존재/신원을 발견했습니다.
추적기는 모두 사용자 공간에 있습니다. 사용자가 실행 중이 아니면 추적기 데몬이 실행되지 않습니다. 언제, 에이것제안 사항은 다음과 같습니다.
systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
...(이전에 보고한 대로 작동함) 현재 사용자의 홈 디렉터리에 심볼릭 링크를 만듭니다.
~/.config/systemd/user
예를 들어 Debian 11/Gnome에서는tracker-extract.service -> /dev/null
.하지만 문제가 있습니다. 이 작업을 수행하려면 비활성화하려는 추적기 데몬의 사용자로 로그인해야 합니다
systemctl --user ...
. 이는 실행을 하려고 했으나 로그인을 하지 않는 사용자에게는 불편합니다. 사용자 중 한 명은Debian-gdm
gdm 인사가 실행될 때 기본적으로 추적기 데몬이 실행되는 것 같습니다. 더 나쁜 점은sudo -u thisuser systemctl --user ...
루트로 로그인해도 작동하지 않는다는 것입니다. 따라서 추적기 데몬 실행을 완전히 비활성화하려면 Debian-gdm으로 로그인하는 방법을 찾아야 합니다.
따라서 추적기 데몬을 실제로 비활성화하는 문제에 대한 현재 해결책은 영향을 받는 각 사용자의 디렉터리에서 이러한 링크를 생성하고 삭제하는 스크립트를 작성하는 것입니다. 추적기 v2를 실행하는지 v3를 실행하는지에 따라 기호 링크의 이름이 다르다는 점을 이해하는 것이 중요합니다. systemctl --user ...
모든 배포판이 위에서 언급한 모든 서비스를 사용하는 것은 아니라는 점을 이해하는 것도 중요합니다 . Debian 11/Gnome에서는 적어도 지금까지는 6개 중 3개만 사용되었습니다. 그러나 사용하지 않는 링크를 마스킹(해당 심볼릭 링크 생성)해도 아무런 해가 없는 것 같습니다.
추적기 데몬이 항상 실행 중인 경우 보안 문제가 발생할 수도 있고 발생하지 않을 수도 있는 데이터가 생성됩니다. (물론 이 데이터가 제가 걱정하는 부분입니다.) 이 데이터를 삭제하려면 권장되는 절차는 다음과 같습니다.
tracker reset --hard
(v2의 경우)
또는
tracker3 reset -s -r
(v3의 경우)
하지만 다시 한번 추적기 데이터를 파기하려는 사용자로 로그인해야 합니다. 다시 한 번 모든 사용자가 간단히 삭제하는 것이 더 안전하고 쉽다는 것을 알았습니다.
~/.cache/tracker
그리고
~/.local/share/tracker
또는 추적기 데이터가 저장되는 위치입니다.
이전에 시스템 로그에 유출된 자세한 추적 보고서를 어떻게 처리할지 고려할 수도 있습니다.
답변3
최근 내 컴퓨터에서 동일한 문제가 발생했습니다. 새로 설치한 후 CPU 리소스를 차지하고 컴퓨터 속도가 느려졌습니다. 내 해결책은 값을 변경하여 실행되도록 하는 것이었지만 어떤 작업도 수행하지 않도록 하는 것이었습니다. 값을 설정하는 데 필요한 스크립트는 다음과 같습니다.
#!/usr/bin/env bash
# make tracker3 daemon non workable & idompotent
# this script will reset its settings, and configure tracker3 daemon, to not let it do anyting.
# if other code has dependency on this tracker, then it will not break, but we also do achieve our goal.
# interpretation for org.freedesktop.Tracker3.Miner.Files enable-monitor from this file
# https://gitlab.gnome.org/GNOME/tracker-miners/-/blob/master/src/miners/fs/tracker-config.c
# Time in seconds before crawling filesystem (0->1000)
# looking at source code https://gitlab.gnome.org/GNOME/tracker-miners/-/blob/master/src/miners/fs/tracker-main.c#L406
# it seems like -ve value will starts it right away, so giving max value will make it to wait max before failing
gsettings set org.freedesktop.Tracker3.Miner.Files initial-sleep 1000
# Set to false to completely disable any monitoring
gsettings set org.freedesktop.Tracker3.Miner.Files enable-monitors false
# Sets the indexing speed (0->20, where 20=slowest speed)
gsettings set org.freedesktop.Tracker3.Miner.Files throttle 20
# Set to true to index while running on battery
gsettings set org.freedesktop.Tracker3.Miner.Files index-on-battery false
# Set to true to index while running on battery for the first time only
gsettings set org.freedesktop.Tracker3.Miner.Files index-on-battery-first-time false
# Set to true to enable traversing mounted directories for removable devices (this includes optical discs)
gsettings set org.freedesktop.Tracker3.Miner.Files index-removable-devices false
# Set to true to enable traversing CDs, DVDs, and generally optical media
# (if removable devices are not indexed, optical discs won't be either)
gsettings set org.freedesktop.Tracker3.Miner.Files index-optical-discs false
# Pause indexer when disk space is <= this value
# (0->100, value is in % of $HOME file system, -1=disable pausing)
# hmm, seems like this line https://gitlab.gnome.org/GNOME/tracker-miners/-/blob/master/src/miners/fs/tracker-main.c#L124
# is misleading, as used by some blog, -ve value disable pausing of tracker, rather then tracker itself,
# and 100 will make it idompotent as any other value is always < 100%
gsettings set org.freedesktop.Tracker3.Miner.Files low-disk-space-limit 100
# List of directories to crawl recursively for indexing (separator=;)
# Special values include: (see /etc/xdg/user-dirs.defaults & $HOME/.config/user-dirs.default)
# &DESKTOP\n"
# &DOCUMENTS\n"
# &DOWNLOAD\n"
# &MUSIC\n"
# &PICTURES\n"
# &PUBLIC_SH
# &TEMPLATES\n"
# &VIDEOS\n"
# If $HOME is the default below, it is because $HOME/.config/user-dirs.default was missing.
# hmm, i think emptying its value will make it work on all dirs, i probably seen that check somewhere
# anyways, redirecting to nonexistent directory will mislead and stop its loop furthur
gsettings set org.freedesktop.Tracker3.Miner.Files index-recursive-directories "['nonexistentdir1']"
# List of directories to index but not sub-directories for changes (separator=;)\n"
# Special values used for IndexRecursiveDirectories can also be used here"
# same with this, as was with index-recursive-directories, but these dirs are removed from index-recursive-directories
# so giving it diff value will be more idompotent to this
gsettings set org.freedesktop.Tracker3.Miner.Files index-single-directories "['nonexixtentdir2']"
# List of directories to NOT crawl for indexing (separator=;)"
# this uses regex, patterns so * will match to everything
gsettings set org.freedesktop.Tracker3.Miner.Files ignored-directories "['*']"
# List of directories to NOT crawl for indexing based on child files (separator=;)"
# this uses regex, patterns so *, *.*, .* will matches to everything
gsettings set org.freedesktop.Tracker3.Miner.Files ignored-directories-with-content "['*', '*.*', '.*']"
# List of files to NOT index (separator=;)"
# this uses regex, patterns so *, *.*, .* will matches to everything
gsettings set org.freedesktop.Tracker3.Miner.Files ignored-files "['*','*.*','.*']"
# Interval in days to check the filesystem is up to date in the database,
# maximum is 365, default is -1.
# -2 = crawling is disabled entirely
# -1 = crawling *may* occur on startup (if not cleanly shutdown)
# 0 = crawling is forced
gsettings set org.freedesktop.Tracker3.Miner.Files crawling-interval -2
# Threshold in days after which files from removables devices
# will be removed from database if not mounted.
# 0 means never,
# maximum is 365.
# so, 1 will clear everything, if its stored, daily
gsettings set org.freedesktop.Tracker3.Miner.Files removable-days-threshold 1
# hmm, it didn't explain this key behaviour, so i think making it false will be better,
# then its default true, As this will disable application indexing
gsettings set org.freedesktop.Tracker3.Miner.Files index-applications false
# explaination based on this file:
# https://gitlab.gnome.org/GNOME/tracker-miners/-/blob/master/src/libtracker-miners-common/tracker-fts-config.c
# Flag to enable word stemming utility (default=FALSE)
gsettings set org.freedesktop.Tracker3.FTS enable-stemmer false
# Flag to enable word unaccenting (default=TRUE)
gsettings set org.freedesktop.Tracker3.FTS enable-unaccent false
# Flag to ignore numbers in FTS (default=TRUE)
gsettings set org.freedesktop.Tracker3.FTS ignore-numbers true
# Flag to ignore stop words in FTS (default=TRUE)
gsettings set org.freedesktop.Tracker3.FTS ignore-stop-words true
# explaination based on this file:
# https://gitlab.gnome.org/GNOME/tracker-miners/-/blob/master/src/tracker-extract/tracker-config.c
# Maximum number of UTF-8 bytes to extract per file [0->10485760]
# min ==> 0 ==> 0b
# max ==> 1024 * 1024 * 10 ==> 10 Mb
# default ==> 1024 * 1024 ==> 1Mb
gsettings set org.freedesktop.Tracker3.Extract max-bytes 0
# Filename patterns for plain text documents that should be indexed
# empty, as these are whitelisting pattern, or maybe never existent filename pattern
# will also work, like filename that contains new line in it, will make it to never match
# to anything.
gsettings set org.freedesktop.Tracker3.Extract text-allowlist '[]'
# Wait for FS miner to be done before extracting
# %TRUE to wait for tracker-miner-fs is done before extracting. %FAlSE otherwise
# hmm, true will make it less aggressive, as it will wait for miner to finish which
# itself has 1000s initial delay.
gsettings set org.freedesktop.Tracker3.Extract wait-for-miner-fs true
# disable its settings in gnome settings also
# populate disable list, disable all apps, and location
gsettings set org.gnome.desktop.search-providers disabled "['org.gnome.Terminal.desktop', 'org.gnome.Settings.desktop', 'org.gnome.Photos.desktop', 'org.gnome.clocks.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Calculator.desktop', 'org.gnome.Nautilus.desktop']"
# clear enable list
gsettings set org.gnome.desktop.search-providers enabled "[]"
# search path setting is already cleared in "index-recursive-directories"
# disable gnome search indexing itself
gsettings set org.gnome.desktop.search-providers disable-external true
# and finally,
# Application Options:
# -s, --filesystem Remove filesystem indexer database
# -r, --rss Remove RSS indexer database
tracker3 reset -s -r
# and kill it brutally
tracker3 daemon --kill
아니면 내 하이라이트를 확인해 보세요:그놈 추적기를 비활성화하거나 완전히 중지합니다..
답변4
추적기 서비스를 bin/true로 리디렉션합니다. 덜 침습적입니다. 이는 사용자 수준 서비스이므로 오버레이 디렉터리를 만들고 다음과 같이 집에서 서비스를 재정의합니다.
#! /bin/bash
for t in tracker-extract tracker-miner-fs tracker-store tracker-writeback; do
SVD=${HOME}/.config/systemd/user/${t}.service.d
if [ ! -d ${SVD} ]; then
mkdir -p ${SVD}
fi
cat > ${SVD}/override.conf << EOF
[Service]
Type=
Type=oneshot
ExecStart=
ExecStart=/bin/true
Restart=
Restart=no
EOF
done
나는 데비안 11을 사용하고 있습니다