Зарегистрированный как пользователь, 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
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, и повторите тестирование.