Как получить gvfs-info для вывода метаданных файлов при вызове cron?

У меня возникла странная проблема, и я надеялся, что кто-то там сможет дать мне некоторое представление.

В Linux Mint использует Nemo, который имеет тенденцию к сбою каждый раз в то время с раздражающим побочным эффектом смещения кучи моих значков на рабочем столе. Я думал, что просто напишу быстрый скрипт, который будет удалять местоположения всех моих значков в текстовый файл один раз в день, а затем другой, чтобы переместить их обратно там, где они должны быть.

Он работает отлично, когда я запускаю его вручную, но не тогда, когда он проходит через cron.

Я выяснил, что проблема сводится к gvfs-info. В основном, я использую команду:

gvfs-info -a 'metadata::nemo-icon-position' /path/to/file

, которая будет выводить:

metadata::nemo-icon-position: 220,682

на выходе.

gvfs-info, однако, необходимо обмениваться данными с dbus-демонами, чтобы получить метаданные, потому что они фактически хранятся в ~ / .local / share / gvfs-metadata /. Он не может получить доступ к dbus-демонам, когда он порождается cron (или sudo или ssh, если на то пошло) - факт, который я открыл здесь и здесь, который предлагает возможное решение.

Следуя этому решению, я может успешно выполнить с терминала:

dbus-launch --exit-with-session /path/to/myscript.sh

и работает как ожидалось. Однако он все равно производит одинаковый вывод без метаданных. Я пробовал много перестановок, где я назвал dbus-запуск и в сочетании с «su user», чтобы убедиться, что он действительно работает как мой пользователь, но я думаю, что я просто не понимаю, что здесь происходит очень хорошо.

У кого-нибудь есть мысли?

1
задан 8 June 2017 в 18:30

3 ответа

комментарий @ steeldriver был именно тем, что мне нужно (спасибо!).

Я снял нижеследующее: Как изменить Gsettings через удаленную оболочку, и это было именно то, что мне нужно!

PID=$(pidof -s nemo)
QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)"
export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"

Я использовал «nemo», потому что знаю, что он будет работать в моей среде рабочего стола.

0
ответ дан 22 May 2018 в 21:45

комментарий @ steeldriver был именно тем, что мне нужно (спасибо!).

Я снял нижеследующее: Как изменить Gsettings через удаленную оболочку, и это было именно то, что мне нужно!

PID=$(pidof -s nemo) QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)" export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"

Я использовал «nemo», потому что знаю, что он будет работать в моей среде рабочего стола.

0
ответ дан 18 July 2018 в 11:58

комментарий @ steeldriver был именно тем, что мне нужно (спасибо!).

Я снял нижеследующее: Как изменить Gsettings через удаленную оболочку, и это было именно то, что мне нужно!

PID=$(pidof -s nemo) QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)" export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"

Я использовал «nemo», потому что знаю, что он будет работать в моей среде рабочего стола.

0
ответ дан 24 July 2018 в 19:53

Другие вопросы по тегам:

Похожие вопросы: