Скрипт командной строки 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 как я могу ждать, пока сеть будет настроена до запуска сценария?

  • После обновления до Jessie управление сервисом не возвращает результат
  • Перевернутые оси xy на сенсорном экране
  • Получить имя устройства в сети
  • Сценарий Bash не работает с crontab
  • Debian dhcpcd и wpa_supplicant 802.1X подключены, интернет перестает работать после истечения срока аренды dhcp
  • Перенаправление портов SNMP в маршрутизатор для использования с привязкой SNMP openHAB
  • Несоответствие конфигурации звуковой карты между pi и root
  • Как я могу проверить RUNLEVEL из сценария bash на Rasbpian?
  • 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

    Решено – как избежать «bash: q: command not found» каждый раз, когда я 'su'?

    Селективные тусклые экраны

    Как сохранить закладки при перестановке страниц PDF-файла с помощью таких инструментов, как pdftk?

    Прерывание цикла Bash для цикла

    Могу ли я `ls` все файлы в каталоге от« 1 »,« 2 », …,« 9 »,« 10 »,« 11 », …,« 20 »,« 21 », …?

    sudo -E не может вызывать некоторые команды, расположенные в домашнем каталоге?

    Функционал posix_fadvice / POSIX_FADV_DONTNEED в Linux?

    Arch Linux не отображает большинство символов

    как сделать непривилегированный скрипт сбросить даже привилегии, которые он имеет в файле

    Предварительная настройка целевого каталога GNU Stow по умолчанию

    Как перебирать файлы и удалять те, кто старше x дней, но НЕ используется

    Двойная загрузка Ubuntu с окнами 8

    USB-накопитель Fedora с постоянным запоминающим устройством

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

    Как я могу сделать скрипт для подсчета по пятам?

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