Как создать ночной режим с помощью cron

Похоже, у вас есть так называемый программный модем (, который иногда называют WinModems ).

Эти устройства представляют себя не так, как обычный модем (как последовательное устройство, принимающее AT-команды ), а как пользовательское USB-устройство, для которого требуется специальный драйвер. Эти драйверы традиционно были доступны только для Windows и поэтому не могли использоваться ни в одной другой операционной системе.

Быстрый поиск выдал эту страницу Ubuntu , которая может помочь, поскольку на ней говорится о специальном модуле ядра, который может работать с вашим устройством. Но страница ссылается на ядра 2.6.x, поэтому может быть ОЧЕНЬ устаревшей.

Вы также можете поковыряться на linmodems.org , на котором сообщество работало над тем, чтобы попытаться сделать эти устройства полезными для Linux.

п.с. самый короткий и простой ответ здесь, может быть, пойти и купить НАСТОЯЩИЙ модем

0
07.11.2020, 15:44
3 ответа

Секрет (, как указал @ waltinator , заключается в правильной установке DISPLAY.

Так и должно бытьDISPLAY=:0

Формат обычно следующий: имя хоста :отображаемый номер, где имя хоста является необязательным.

Вторая проблема связана с безопасностью дисплея. Если вы поместите cronjob в свой собственный crontab вместо корневого, тогда xhostне понадобится, так как xauthбудет работать. OP (, вероятно, )сделал это правильно, используя crontab -eкак самого себя. (Обратите внимание, что $HOMEдолжен быть правильным, чтобы защита xauthработала. Это часть того, что делает размещение в вашем собственном crontab.)

Еще одна хитрость заключается в том, чтобы установить систему электронной почты для получения сообщений об ошибках.

Когда OP сообщил (после установки системы электронной почты ), что «задание cron не может подключиться к дисплею», это, вероятно, означает, что либо ДИСПЛЕЙ работает неправильно, либо что-то пошло не так с безопасностью дисплея (xauth. ] и xhost). В связи с этим советую попробовать запустить скрипт в командном окне. Попробуйте запустить его как env -uDISPLAY /home/jose/Software/open-iris-mini.sh(, и если он говорит, что файл не является исполняемым, используйтеchmod +x)

(ответ добавлен по запросу OP.)

1
18.03.2021, 22:53

Это именно то, что сработало для меня, используя ответы обоих, кто ответил до меня

Используйте crontab -eдля задания cron

MAILTO=somemail@mail.com
0 20 * * * sh /home/jogarcia/Software/open-iris-mini.sh

Затем в файле sh:

#!/bin/bash

DISPLAY=:0 /home/jogarcia/Software/iris-mini

Чтобы убедиться, что дисплей работает должным образом, я использовал команду:

env -uDISPLAY /home/jogarcia/Software/open-iris-mini.sh 

Чтобы просмотреть журналы cron, я установил постфикс sudo apt-get install postfix, все локальные.

0
18.03.2021, 22:53

Это не удается, потому что cronзадания выполняются в собственном контексте, а не в контексте GUI (, где управление цветами «имеет смысл» ).

Чтобы заставить это работать, нужно выполнить 2 шага

В свой скрипт добавьте определение для DISPLAYпеременной окружения (, используемой в качестве указателя на X-сервер ). Что-то вроде

export DISPLAY=0:.

, но проверьте с помощью echo "$DISPLAY"в контексте вашего графического интерфейса.

В вашем графическом интерфейсе запуска (, возможно, в$HOME/.config/autostart)

xhost +localhost

чтобы указать X-серверу принимать соединения, исходящие от хостаlocalhost(или идентификатора пользователяlocalhost--Безопасность X Windows не работает ). Вы должны делать это при КАЖДОМ входе в GUI.

Прочитать man xhost X.

1
18.03.2021, 22:53

Теги

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