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

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 
  • ifplugd (lo): сбой выполнения программы, возвращаемое значение равно 1
  • Использование PCSCD с ошибкой ACR122U
  • Почему автоматические обновления не отправляются по электронной почте?
  • Измените другое местоположение / да / нет или ОК / Отмена на малине Pi
  • Взаимодействие с /etc/rc.local
  • SSH с ключами RSA под Raspbian продолжает запрашивать парольную фразу
  • Монтирование NTFS-диска или папки в качестве доли Samba на Raspbian Jessie
  • Как подключиться к моему серверу через его доменное имя после перенаправления его на внутренний IP через / etc / hosts?
  • отправка электронной почты в командной строке: ошибка «550 псевдонимов»
  • Программа видит только 1 устройство ввода
  • Почему мой малиновый pi не получает пакетов через Ethernet?
  • Interesting Posts

    Проверка в ksh, если каталог пуст

    Как grep файл для отметки времени? Я ищу цифры часа

    Манипулирование и сохранение нескольких файлов

    Почему завершение пути в bash не всегда работает?

    Включить поддержку udev и speex для pulseaudio

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

    Как я могу предотвратить использование аргументов аргументов `xargs` в префиксах пробелами?

    Могу ли я использовать хвост с файлом как для ввода, так и для назначения?

    Как просмотреть файлы и папки, которые не поддерживаются никаким пакетом DEB

    Статическая конфигурация IP больше не сохраняется в CentOS6

    Ошибка включенного зонда: syscall :: open_nocancel: entry): недопустимый доступ пользователя в действии №2 в DIF

    Изменение пароля sudo и root на Debian

    Почему sudo su работает, но su нет?

    Отключение имен столбцов в выводах ps

    Низкая (?) Энтропия доступна в Arch Linux?

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