Crontab не выполняет ни одной простой команды

316
Timmy

Зарегистрированный как пользователь, piя выполняю: crontab -eи я добавляю эту строку в конец файла, сохраняю и завершаю работу. @reboot touch /home/pi/Documents deleteme

Затем я перезагружаюсь и не могу найти файл deletemeвнутри папки/home/pi/Documents

Где проблема?

Это разрешение папки:

drwxr-xr-x 6 pi pi 4096 nov 24 09:50 Documents

0

2 ответа на вопрос

3
Jarek Jóźwik

У тебя должно быть:
@reboot touch /home/pi/Documents/deleteme

И у вас должен быть deletemeфайл в вашем /home/pi/Documentsкаталоге.
На самом деле вы пытаетесь обновить атрибут date в каталоге Documents, но с добавленным в него параметром - «deleteme».
Вы всегда можете проверить, пытался ли cron выполнить какую-либо из строк crontab, заглянув в журнал cron, обычно в /var/log/cron.

Вы правы, это всего лишь ошибка, `touch` работает отлично, но я действительно не понимаю, почему это не работает:` @reboot python3 /home/pi/Documents/my_script.py & `while, если я пишу вручную : `python3 /home/pi/Documents/my_script.py &` это работает отлично. Я правда не понимаю Timmy 6 лет назад 0
Я могу ошибаться, но, может быть, `&` знак здесь создает проблемы? В любом случае задания Cron выполняются как отдельные задачи, поэтому нет смысла специально указывать их выполнение в фоновом режиме. Также - попробуйте указать абсолютный путь для двоичных файлов `python`. Обычно это также является причиной ошибок. Jarek Jóźwik 6 лет назад 0
К сожалению, это не работает, также с `@reboot / usr / bin / python3 / home / pi / Documents / iceuploadbot.py` бот не запускается при загрузке. Чтобы быть более понятным, иногда это начинается без проблем, в других случаях (большинство) это не работает Timmy 6 лет назад 0
В этом случае проверьте журнал cron, если cron хотя бы попытается запустить этого бота при каждой загрузке. Если это иногда начинается, иногда нет, может быть, это проблема времени - / home не монтируется. Можете ли вы переместить этот сценарий куда-нибудь еще? На том, который обязательно монтируется во время загрузки? Jarek Jóźwik 6 лет назад 0
Спасибо, я решил, проблема была в том, что во время загрузки бот проверяет соединение, но локальная сеть еще не подключена. Я решил вставить 5 секунд сна в качестве первой инструкции бота. Перемещение бота в другое место не помогло. Timmy 6 лет назад 0
0
jcbermu

Наиболее вероятным объяснением является то @reboot, что выполняется в тот момент, когда / home еще не смонтирован.

Чтобы быть уверенным, измените строку на что-то вроде этого:

@reboot echo "test" > /var/tmp/reboot.txt 2>&1

Затем перезагрузите компьютер и проверьте, есть ли файл в /var/tmpвызванном reboot.txt.

Если это так, переместите ваш сценарий в место, которое присутствует со времени загрузки, например / usr / local, и повторите тестирование.