У меня есть простой питоновый сценарий, который сравнивает дату файла с текущей датой и печатает что-то на экране.
Я хочу выполнять этот сценарий каждый раз при входе в систему.
Я пытаюсь добавить скрипт для запуска приложения в Ubuntu, которые не работали.
Я пытался создать .sh файл с 'python3 code.py' и передать этот sh файл в crontab( через crontab -e
команду @reboot /passto file/script.sh
), но не получил желаемого вывода.
Что мне делать?
Задания, выполняемые через cron
, crontab
, не выполняются в той же среде выполнения, что и на рабочем столе. Ни одно из ваших изменений PATH
или других настроек переменных окружения не передается автоматически на ваше задание cron
. Например, отсутствует $DISPLAY
, поэтому программы пользовательского интерфейса нуждаются в специальной обработке (читайте man xhost
).
Можно установить переменные окружения для всех заданий cron
в файле crontab
.
Читайте man 5 crontab
.
Посмотрите на результаты echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
в каждом из ваших окружений.
Поскольку часть команды /bin/sh
строки crontab
по умолчанию интерпретируется командой /bin/sh
, которая имеет более простой синтаксис, чем /bin/bash
, я рекомендую использовать /команду
для вызова скрипта bash
(исполняемого, смонтированного, начинающегося с #! /bin/bash
), который устанавливает окружение, затем вызывает нужную программу.