Скрипт командной строки Crontab git pull и навсегда

Я пытаюсь настроить Raspberry Pi, чтобы проверить репо при запуске, а затем запустить сценарий узла с навсегда.

Я получил вторую часть работы, но я пробовал десятки команд git без успеха.

Вот мой crontab, который я получаю так:

crontab -u pi -e

 @reboot /bin/sh /home/pi/code/script.sh 

Теперь у моего скрипта есть права доступа -rwxr-xr-x и идет так:

 #!/bin/sh cd /home/pi/code /usr/bin/sudo -u pi -H /usr/bin/git pull origin master /usr/bin/sudo -u pi -H /home/pi/.nvm/v0.11.11/bin/forever start /home/pi/code/server.js 

Forever запускает server.js при перезагрузке, без проблем, но репо никогда не обновляется. Если я запускаю скрипт с помощью sh /home/pi/code/script.sh он запускает git pull правильно … Я изначально настроил псевдоним для git pull, чтобы он был git вверх, как это рекомендуется, но понял, что это может быть моя проблема и я вернулся к самой простой версии. Все еще нет успеха.

Любой вход приветствуется.

EDIT: выход crontab указывает на проблему с подключением: Could not resolve host: bitbucket.org как я могу ждать, пока сеть будет настроена до запуска сценария?

  • Проблема при создании LZ4 из источника: «рецепт для целевого« тест-фуззера »не удался»
  • Есть ли способ сделать хорошие (приоритеты процесса) значениями, чтобы выжить при перезагрузке?
  • Выбор источника адреса ULA IPv6
  • Добавить псевдоним правила udev для устройства ввода
  • Как разрешать имена хостов с помощью Raspbian 5/5/2015?
  • Сценарий Bash не работает с crontab
  • Localhost внезапно становится «loS»?
  • linux http proxy с веб-ускорителем
  • 2 Solutions collect form web for “Скрипт командной строки Crontab git pull и навсегда”

    Вместо использования crontab вы должны создать простой сервис, который зависит от сети:

     #!/bin/bash # /etc/init.d/XY ### BEGIN INIT INFO # Provides: XY # Required-Start: $syslog $network # Required-Stop: $syslog $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Example initscript # Description: This service is used to start XY ### END INIT INFO case "$1" in start) echo "Updating XY" cd /home/pi/code /usr/bin/sudo -u pi -H /usr/bin/git pull origin master echo "Starting server.js" /usr/bin/sudo -u pi -H /home/pi/.nvm/v0.11.11/bin/forever start /home/pi/code/server.js ;; stop) echo "Stopping XY" ;; *) echo "Usage: /etc/init.d/XY start|stop" exit 1 ;; esac exit 0 

    Поместите его в служебную папку и сделайте ее выполнимой:

     sudo chmod +x /etc/init.d/XY 

    Получив помощь для отладки и тестирования решения Phlogi без успеха, я решил вернуться к оригинальному crontab и просто добавить код, чтобы дождаться, когда сетевой интерфейс будет готов. Вот как выглядит скрипт сейчас:

     #!/bin/sh while ! ping -c 1 -W 1 bitbucket.org; do echo "Waiting for bitbucket - network interface might be down..." sleep 1 done cd /home/pi/code && /usr/bin/sudo -u pi -H git checkout master && /usr/bin/sudo -u pi -H git up /usr/bin/sudo -u pi -H /home/pi/.nvm/v0.11.11/bin/forever start /home/pi/code/server.js 
    Interesting Posts

    Как сжать несколько папок, каждый в свой собственный zip-архив и выбрать назначение в командной строке linux?

    Есть ли какой-то пароль по умолчанию для нового пользователя в Linux?

    как указать порт пересылки при использовании нескольких служб tsocks?

    Каковы правильные настройки для Ubuntu Touch под qemu?

    сетевая карта инициализируется слишком долго (похоже, проблема с прошивкой)

    Как вы можете изменить команду форматирования, используемую человеком?

    Не удается установить MDM на linux mint

    Как подключить stdout к файлу, если текущая команда уже передается через gzip

    Перечислите все файлы, заканчивающиеся на 10 или 11 или 12

    Лучше ли передавать все файлы в mv или параллельно запускать несколько процессов mv?

    Размонтирована ли корневая файловая система во время выключения Linux?

    Правило udev для пользователей, не являющихся пользователями root, отменяющих драйверы pci?

    Каковы самые старые клиенты irc, которые я все еще могу использовать на Linux?

    Разрешение разрешений + w для подкаталога для группы пользователей без доступа к sudo

    bath control, если используется флаг опции

    Linux и Unix - лучшая ОС в мире.