Время от времени я закрываю программу workrave. Например, когда я смотрю кино. Затем я забываю перезапускать его.
Так, я хочу перезапустить его неоднократно. Так или иначе крон не работает. Следующее дает сводку:
человечность, бионическая (18.04)
я - обычный пользователь (не корень)
$ xhost
access control enabled, only authorized clients can connect
INET:localhost
INET6:localhost
SI:localuser:USERNAME
$ echo $DISPLAY
:0
$ crontab -l
* * * * * export DISPLAY=:0 && /usr/bin/workrave
когда я открываю tilix терминал и тип /usr/bin/workrave
, программа запускается прекрасный.
Команда
* * * * * env DISPLAY=:0 /usr/bin/workrave
не работает также.
Давайте предположим, что Ваше имя пользователя tiger
- просто замените везде ниже имени с Вашим настоящим именем пользователя. Создайте сценарий удара в корневом каталоге Вашего пользователя:
touch /home/tiger/workrave.sh
Сделайте созданный исполняемый файл сценария:
chmod +x /home/tiger/workrave.sh
Откройте сценарий в текстовом редакторе, позвольте ему быть нано, например:
nano /home/tiger/workrave.sh
Вставьте в сценарий его содержание (не забывайте заменять tiger
):
#!/bin/bash
ifrun=$(pgrep -cxu tiger -f /usr/bin/workrave)
if [[ $ifrun == 0 ]] ;
then
DISPLAY=:0 /usr/bin/workrave &
fi
Сохраните изменения и закройте текстовый редактор. Откройте crontab как tiger
:
crontab -e
Добавьте к концу crontab строку (не забывайте заменять tiger
):
*/1 * * * * /home/tiger/workrave.sh
Сохраните и закройте crontab. Проверьте, работает ли все (крон будет запускать скрипт каждую минуту). Время установки для выполнения сценария.Это все.
Комментарий. Сценарий выполняет workrave, только если другие его экземпляры не работают.
ОБНОВЛЕНИЕ
Сценарий для тестирования (замена tiger
):
#!/bin/bash
DISPLAY=:0 /usr/bin/workrave 2>> /home/tiger/workrave-errors.log