Похоже, у вас есть так называемый программный модем (, который иногда называют WinModems ).
Эти устройства представляют себя не так, как обычный модем (как последовательное устройство, принимающее AT-команды ), а как пользовательское USB-устройство, для которого требуется специальный драйвер. Эти драйверы традиционно были доступны только для Windows и поэтому не могли использоваться ни в одной другой операционной системе.
Быстрый поиск выдал эту страницу Ubuntu , которая может помочь, поскольку на ней говорится о специальном модуле ядра, который может работать с вашим устройством. Но страница ссылается на ядра 2.6.x, поэтому может быть ОЧЕНЬ устаревшей.
Вы также можете поковыряться на linmodems.org , на котором сообщество работало над тем, чтобы попытаться сделать эти устройства полезными для Linux.
п.с. самый короткий и простой ответ здесь, может быть, пойти и купить НАСТОЯЩИЙ модем
Секрет (, как указал @ 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.)
Это именно то, что сработало для меня, используя ответы обоих, кто ответил до меня
Используйте 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
, все локальные.
Это не удается, потому что cron
задания выполняются в собственном контексте, а не в контексте GUI (, где управление цветами «имеет смысл» ).
Чтобы заставить это работать, нужно выполнить 2 шага
В свой скрипт добавьте определение для DISPLAY
переменной окружения (, используемой в качестве указателя на X-сервер ). Что-то вроде
export DISPLAY=0:.
, но проверьте с помощью echo "$DISPLAY"
в контексте вашего графического интерфейса.
В вашем графическом интерфейсе запуска (, возможно, в$HOME/.config/autostart
)
xhost +localhost
чтобы указать X-серверу принимать соединения, исходящие от хостаlocalhost
(или идентификатора пользователяlocalhost
--Безопасность X Windows не работает ). Вы должны делать это при КАЖДОМ входе в GUI.
Прочитать man xhost X
.