Мой скрипт отлично работает, когда я запускаю его с терминала, но он не работает с cron. Зачем?

На самом деле вы можете использовать кнопки Cut / Copy / Paste-Hotkey в терминале: вам просто нужно дополнительно использовать клавишу Shift:

Копировать: Ctrl + Shift + C

Вставить: Ctrl + Shift + Shift

Вырезать: Shift + Shift + C [!d9 ]

Некоторые команды для быстрого редактирования команд:

Удалить одно слово: Shift + Backspace

Переместить cusrsor на одно слово слева / right: Backspace + & larr; / Ctrl + & rarr;

Если вы хотите использовать Супер-ключ в качестве модификатора, нет возможности сделать поэтому в настольных средах на базе GTK. Если это важная функция для вас, вы можете попробовать KDE.

2
задан 23 May 2018 в 08:47

6 ответов

попробуйте добавить эту строку в ваш скрипт (очевидно, перед звонком [Ф3]):

[Ф1]

она подбирает [F4] для переменной среды из существующих гном-сессии. Это делает два предположения, хотя:

Вы работаете в гном-сессии; и есть только один гном-сессии

, если существует несколько гномов-сессий (т. е. по одной для нескольких пользователей), Вы можете изменить эту строку, чтобы работать для конкретного пользователя, добавив опцию [F5], чтобы [ф6]. Например:

[Ф2]

если Вы не пользуетесь GNOME - тогда я думаю, что это будет работать с другими окружениями рабочего стола, заменив [ф7] с другим значением - такие, как нажать [F8] для lxde.

2
ответ дан 8 June 2018 в 14:02
  • 1
    Что работал!! Спасибо... так проблема в том, что в набор атрибутов зависит от переменной среды в части дизайна. Но как ты это выяснил? Вы уже знаете, что в используется эта переменная среды или есть способ проверить, какие переменные используются в конкретной команде? – Ramuyko 23 May 2018 в 18:47
  • 2
    Если честно, мне повезло с парой поисковых запросов в Google: - перевод.гугл.ком.АС/переводить?гл=АН&сл=О. и U=http://в... - unix.stackexchange.com/questions/250276/... – Brendan McGrath 24 May 2018 в 07:09
  • 3
    После обновления системы до Ubuntu 18.04 этот подход больше не работает (это было 16.04, когда я задал этот вопрос). Я понял, что файл environ является принадлежащей "гдм", и это только имеет значение для разрешения его владельца (например, если gdm выполняется командой "chmod 400 энвирон"). Как следствие, команда Cat не имеет достаточно прав для чтения файла environ и я пытаюсь добавить пользователя в группу гсд не работает. Знаете ли вы решение этой проблемы? – Ramuyko 7 June 2018 в 09:02
  • 4
    Ну, как временное решение, я добавил строку "экспортировать в части дизайна=ОС Unix:путь=/выполнения/пользователей/1000/автобус" непосредственно на моего скрипта. Что работает хорошо, но я действительно не знаю последствия использования есть фиксированное значение, и если этот путь изменений при некоторых обстоятельствах. Но как функциональное решение, которое прекрасно... – Ramuyko 7 June 2018 в 11:53

Попробуйте добавить эту строку к вашему скрипту (очевидно, перед вызовом gvfs-set-attribute):

export $(cat /proc/$(pgrep gnome-session)/environ | grep -z ^DBUS_SESSION_BUS_ADDRESS)

Он выбирает переменную среды DBUS_SESSION_BUS_ADDRESS из существующего gnome-сессии. Это делает два предположения:

Вы используете gnome-session; и есть только один gnome-session

Если есть несколько сеансов gnome (то есть каждый для нескольких пользователей), вы можете изменить эту строку для работы для конкретного пользователя, добавив параметр -u в pgrep. Например:

export $(cat /proc/$(pgrep gnome-session -u myUser)/environ | grep -z ^DBUS_SESSION_BUS_ADDRESS)

Если вы не используете gnome, то я думаю, что это будет работать с другими средами рабочего стола, заменив gnome-session на другое значение - например, lxsession для LXDE.

2
ответ дан 17 July 2018 в 13:41

попробуйте добавить эту строку в ваш скрипт (очевидно, перед звонком gvfs-set-attribute):

export $(cat /proc/$(pgrep gnome-session)/environ | grep -z ^DBUS_SESSION_BUS_ADDRESS)

она подбирает [F4] для переменной среды из существующих гном-сессии. Это делает два предположения, хотя:

Вы работаете в гном-сессии; и есть только один гном-сессии

, если существует несколько гномов-сессий (т. е. по одной для нескольких пользователей), Вы можете изменить эту строку, чтобы работать для конкретного пользователя, добавив опцию [F5], чтобы pgrep. Например:

export $(cat /proc/$(pgrep gnome-session -u myUser)/environ | grep -z ^DBUS_SESSION_BUS_ADDRESS)

если Вы не пользуетесь GNOME - тогда я думаю, что это будет работать с другими окружениями рабочего стола, заменив gnome-session с другим значением - такие, как нажать [F8] для lxde.

1
ответ дан 20 July 2018 в 13:45

[Ф3] рабочих мест не бегают под оконной системы X, и, как правило, не открыть объекты GUI.[!однако н0]

, вас могут обмануть.

в терминале, под управлением графического интерфейса:

[Ф1]

, а в начале [Ф4] задание:

[Ф2]

читать [ф5].

1
ответ дан 8 June 2018 в 14:02
  • 1
    Спасибо за ответ. Этот подход отлично работает, если я пытаюсь запустить любое графическое приложение с cron. Но это все равно не решает мою проблему с... В набор-атрибут фактически является инструментом командной строки. – Ramuyko 23 May 2018 в 08:33
Задания

cron не запускаются в системе окон X и обычно не обращаются к объектам графического интерфейса.

Однако вы можете обмануть.

В терминале, работающем под GUI:

xhost +localhost echo "export DISPLAY=\"$DISPLAY\"" >$HOME/.display

И в начале задания cron:

source $HOME/.display

Прочитайте man xhost.

1
ответ дан 17 July 2018 в 13:41
Задания

cron не запускаются в системе окон X и обычно не обращаются к объектам графического интерфейса.

Однако вы можете обмануть.

В терминале, работающем под GUI:

xhost +localhost echo "export DISPLAY=\"$DISPLAY\"" >$HOME/.display

И в начале задания cron:

source $HOME/.display

Прочитайте man xhost.

1
ответ дан 20 July 2018 в 13:45
  • 1
    Спасибо за ответ. Этот подход работает отлично, если я пытаюсь запустить любое приложение GUI с помощью cron. Но это еще не решило мою проблему ... Атрибут gvfs-set - это инструмент командной строки. – Ramuyko 23 May 2018 в 08:33

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

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