Может ли команда «at» выполнить любой скрипт оболочки?

Я создал java-программу, которая показала диалог сообщения. После нажатия OK он закрывается и выполнение программы заканчивается.

Затем я создал сценарий оболочки alarm.sh который выполнил программу. Я тестировал его, и он работал:

 $ alarm.sh "-i It's time to ring up the revenue service" 

Однако когда я выполнил:

 $ echo "alarm.sh \"-i It's time to ring up the revenue service\"" | at 15:00 

Диалоговое окно сообщения не всплывало в 15:00, хотя задание было запланировано. Зачем? Как «at» выполняет сценарии оболочки и каковы его ограничения?

  • Пропустить stdin в качестве аргумента для скрипта bash
  • Преобразование многострочных линий в одну строку
  • скрипт меню через ssh
  • linux / solaris + проверить дублирующий действительный IP-адрес из файла
  • Удалить строку с пробелами и цитатами из xml-файла
  • Ошибка при запуске скрипта с nohup
  • shell или perl-скрипт для проверки группы имеют права чтения
  • Как проверить скрипт оболочки, если исполняемый файл запущен или нет?
  • 2 Solutions collect form web for “Может ли команда «at» выполнить любой скрипт оболочки?”

    Нет, at может запускать неинтерактивные скрипты.

    Эти сценарии будут запускаться без подключения к терминалу, откуда вы запустили команду at . Если программа выводит что-то в поток stdout и / или stderr , этот вывод будет отправлен вам по почте.

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

    Если вы хотите использовать текущий X11-дисплей, когда команда будет запущена, вы можете установить его таким образом:

     echo "DISPLAY=$DISPLAY alarm.sh \"-i It's time to ring up the revenue service\"" | at 15:00 

    at может не иметь того, что ваш текущий рабочий каталог является его рабочим каталогом. Укажите полный путь к alarm.sh :

     echo "/path/to/alarm.sh '-i There is no alarm; only Zuul'" | at 15:00 
    Linux и Unix - лучшая ОС в мире.