Сценарий Python не работает как cronjob

Я пробовал все, и я видел здесь другие вопросы относительно этого, но я не могу на всю жизнь запускать скрипт python как cronjob.

Я попробовал следующее.

* * * * * /usr/bin/python /home/myhome/myscript.py 

Все myscript.py делает это спящий режим в течение 30 секунд, поэтому я могу проверить процессы, если он работает, но я еще не видел его.

 import time time.sleep(30) 

Что мне не хватает? Разве это не должно быть? Я даже пытался открыть файл в / tmp и выводить туда, но не повезло. Я беру на себя некоторые проблемы с переменной окружения, но я не уверен, с чего начать.

Кстати, это хорошо работает в командной строке.

Да, это должно работать нормально, предполагая, что, когда вы говорите «он отлично работает в командной строке», вы буквально вставляете одну и ту же команду из записи crontab. Что нужно проверить:

  1. Действительно ли работает демон cron? (Запустите pidof cron )
  2. Если он запущен, попробуйте перезапустить его. (Зависит от вашего вкуса Unix, но что-то вроде service cron restart или /etc/init.d/cron restart )
  3. Если ваш сценарий все еще не запущен, проверьте все в /var/log для соответствующего вывода – конкретный файл зависит от конфигурации вашего syslog, но /var/log/messages и /var/log/syslog являются хорошими параметрами, если /var/log/cron не существует.

Примечание. Чтобы выполнить большинство из этих действий, вам нужно быть root если у вас нет доступа, вам нужно поговорить с человеком, который управляет машиной.

Кроме того, когда вы говорите, что вы открываете файл в /tmp , это, вероятно, самая надежная вещь, которую вы можете сделать, чтобы обеспечить ее работу. Прямо в начале вашего скрипта (перед импортом или чем-либо еще) добавьте это:

 with open("/tmp/testfile", "a") as fd: fd.write("I am running\n") 

Вы также можете проверить, правильно ли установлен ваш crontab, – он должен быть помещен в нечто вроде /var/spool/cron/crontabs (это на Ubuntu Linux, оно может отличаться в разных вариантах Unix). Вы должны увидеть файл с вашим именем пользователя, которое должно содержать вашу запись.

Наконец, если вы действительно отчаялись, вы могли бы strace ваш процесс cron, чтобы посмотреть, что он делает:

 sudo strace -f -p `pidof cron` 

Вам не нужно слишком беспокоиться о специфике, но она должна делать что-то каждую минуту. Если это не так, что-то идет не так.

  • Есть простой, элегантный способ определения одиночных чисел?
  • Многопроцессорный цикл for?
  • Mapped Drive недоступен из запланированной задачи Windows
  • Как я могу безопасно создать вложенный каталог в Python?
  • Pandas groupby diff
  • Автоматически инициализировать переменные экземпляра?
  • str.translate дает TypeError - Translate принимает один аргумент (2 данный), работал в Python 2
  • Как проверить, пуст ли файл или нет?
  • Распространение Anaconda Ошибка Python
  • Что делает numpy.random.seed (0)?
  • Yum erase python = разрушение
  • Interesting Posts

    Управление запуском команд командной строки Windows в новом окне

    Быстрый алгоритм быстрого поиска диапазона, в котором содержится номер в наборе диапазонов?

    Преодоление ограничения 1024 символов с помощью setx

    Обслуживание favicon.ico в ASP.NET MVC

    Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в контексте управления базой данных

    Опубликовать фотографию на стене пользователя, используя Facebook iOS SDK

    Амперсанд (&) в конце и часть селектора в SASS

    Разница между пользователем и схемой в Oracle?

    Как обмениваться случайным состоянием nump родительского процесса с дочерними процессами?

    Как вы используете Android Volley API?

    Как удалить / перезагрузить подсистему Windows для Linux в Windows Insider Build 14316

    Как я могу сделать скриншоты ПК до того, как он загрузится?

    Как я могу атомизировать приращение переменной в Swift?

    c ++ –

    Есть ли способ поиска в меню приложений Windows, например, CMD + SHIFT + / OSX OSX?

    Давайте будем гением компьютера.