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

Я имею странную проблему и надеялся, возможно, что кто-то там смог давать мне некоторое понимание. Отчасти в недоумении.

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

Это работает отлично, когда я выполняю его вручную, но не, когда это пробегает крон.

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

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

который произведет:

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

в выводе.

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

После того решения я могу успешно выполниться от терминала:

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

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

У кого-либо есть какие-либо мысли?

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

1 ответ

комментарий @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}"

я использовал 'Немо', потому что я знаю, что это работало бы в моей настольной среде.

0
ответ дан 8 December 2019 в 05:06

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

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