Я нуждаюсь в помощи для получения crontab, работающего в Xubuntu 16.04.6

Я установил crontab задание как это:

@reboot  xmodmap -e \"keycode 105=Delete\"
@reboot  xmodmap -e \"keycode 66=Home\"

и экономил на каталоге по умолчанию, предложенном НАНО (/tmp/..../.../cron), но это не работает. Я могу перечислить задание крона, услуга крона работает, вывод journalctl -b 0 _SYSTEMD_UNIT=cron.service отображает задания без ошибок и так далее. Помимо этого, я также не могу запустить скрипт при начальной загрузке: @reboot /home/user/scripts/myscript.sh

Почему cron не работа, как я ожидаю?

0
задан 5 April 2019 в 10:50

2 ответа

xmodmap изменяет код клавиши, отображающийся для текущей сессии. Таким образом, при выполнении его в crontab это открывает сессию, изменяет отображение и закрыло сеанс снова - и его эффекта не стало.

Необходимо вместо этого выполнить команды xmodmap в профиле $HOME/.profile (или в Вашем $HOME/.xinitrc если Вы запускаете X сессий только при входе в систему).

man xmodmap говорит:

Это обычно выполняется из сценария запуска сессии пользователя для конфигурирования клавиатуры согласно персональным вкусам.

3
ответ дан 25 October 2019 в 06:57

Смотрите на man cron, или другие примеры в Интернете. Я полагаю, что проблема, которую Вы имеете, Вы не используете полный путь двоичные файлы.

| melon@pc ~>$ which xmodmap
/usr/bin/xmodmap

В Вашем cron -e, вместо xmodmap, Вы поместили бы /usr/bin/xmodmap.

Но, даже с этим изменением, Вы не будете видеть ключевых изменений.


Linux является большим в этом, он предоставляет различные решения проблем, но изучите, как другие решили подобные проблемы. Например, xmodmap обычно вызывается в .xinitrc, который выполняется, когда Ваши X сессий запускаются. xmodmap действительно не проложит себе путь, Вы пробуете, по крайней мере, для Вашего обычного пользователя.

Так как Вы интересуетесь xmodmap, Я рекомендую, чтобы Вы посмотрели на документацию и примеры и забыли о cron полностью для этой текущей проблемы.

Если Вы не желаете посмотреть на документацию и другие примеры, или хотеть реальное понимание того, как вещи работают, можно искать man страницы:

XMODMAP(1)                            General Commands Manual                            XMODMAP(1)

NAME
       xmodmap - utility for modifying keymaps and pointer button mappings in X

SYNOPSIS
       xmodmap [-options ...] [filename]

DESCRIPTION
       The  xmodmap  program is used to edit and display the keyboard modifier map and keymap table
       that are used by client applications to convert event keycodes into keysyms.  It is  usually
       run  from  the user's session startup script to configure the keyboard according to personal
       tastes.

Это последнее предложение имеет ответы на Вашу проблему.

На данном этапе Вы не знаете если cron не работает (это - Ваше подозрение), или если xmodmap запущенный, но Вы не видите эффектов. Последний является вероятным сценарием. Ваш пользователь должен выполниться xmodmap в токе X сессий для xmodmap изменения, чтобы быть эффективным.


После того как Вы добираетесь xmodmap работа без cron, можно решить следующую проблему. Как отмечалось ранее, Вам нужны все системные пути, но также необходимо сказать cron как петлять. Вы просто указали на файл, который работает над Вашим терминалом, поскольку он использует хижину/интерпретатор (т.е.: #!/bin/bash). Так, для cron выполнять a bash файл...

| melon@nifflheim ~>$ which bash
/usr/bin/bash
| melon@nifflheim ~>$ crontab -e
...
@reboot /usr/bin/bash /home/user/scripts/myscript.sh

Хотя, сделайте Вас, действительно хотят root запущение скрипта найдено в Вашем пользовательском каталоге? С тем, что Вы изучили до сих пор, возможно, Вы добавляете /usr/bin/bash /home/user/scripts/myscript.sh (или source это) в ~/.xinitrc вместо этого ^ _ ~.

1
ответ дан 25 October 2019 в 06:57

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

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