2015-05-05 4 views
4

EDIT: В соответствии с советом Джима Раша я теперь использую rc.local вместо init.d direclty для запуска навсегда при загрузке.Запуск приложения узла при запуске на малине pi

Я обманываю голову над этим.

Я хочу запустить приложение узла при запуске малины pi и перезагрузиться. Я использую вечно, чтобы на самом деле вызвать приложение и использовать init.d для инструкций начала стиля debian.

Я создал файл kuuyi в каталоге /etc/init.d, учитывая его разрешение 755 и после редактирования файла выполнил update-rc.d kuuyi по умолчанию, чтобы, надеюсь, запустить Raspbian, чтобы запустить его перезапуск/загрузки.

Вот мой init.d файл:

#!/bin/sh 
#/etc/init.d/kuuyi 

### BEGIN INIT INFO 
# Provides:    kuuyi 
# Required-Start: 
# Required-Stop: 
# Default-Start:  2 3 4 5 
# Default-Stop:   0 1 6 
# Short-Description: Kuuyi 
### END INIT INFO 

case "$1" in 
start) 
/usr/local/bin/forever --sourceDir=/home/pi/kuuyi_device -p /root/.forever run.js 
;; 
stop) 
/usr/local/bin/forever stop --sourceDir=/home/pi/kuuyi_device run.js 
;; 
*) 

echo "Usage: /etc/init.d/kuuyi {start|stop}" 
exit 1 
;; 
esac 
exit 0 

Любые идеи, почему это не работает? Я запускаю Raspbian на малине Pi B +. Я запускал /etc/init.d kuuyi start и навсегда пинает и начинает приложение просто отлично. Его просто не происходит после загрузки машины.

Любая помощь по этому поводу настолько оценена, что я так же отжат, как старая сырная ткань после молочного дня на этом.

+0

Я не использую малиновый-пи. Возможно, вы можете добавить эту строку перед выражением 'case':' echo '$ (date' +% Y% m% d-% H:% M:% S '): args = $ @ ">>/home/pi/kuuyi-args.log'. Это, по крайней мере, подтвердит, вызван ли ваш сценарий. – tivn

ответ

2

Я запускаю узел (фактически nodemon) из /etc/rc.local. Только командная строка с & в конце. Я также перенаправляю stderr и stdout к файлам журналов для устранения неполадок при запуске и сбоях. Получение прав в любой директории, которая была написана, была одной из моих ранних проблем.

Пример:

PATH=$PATH:/opt/node/bin 
cd /var/node/RoadsterNode 
/opt/node/bin/nodemon /var/node/RoadsterNode/app.js </dev/null>/var/tmp/startup.log 2>/var/tmp/startup.err & 
+0

Спасибо Джим за этот лакомый кусочек. Я изменил свой файл rc.local с помощью вечного вызова так:/usr/local/bin/forever -l /home/pi/kuuyi_device/out.log -a start /home/pi/kuuyi_device/run.js &. .... до сих пор не повезло с этим. Вероятно, это связано с тем, что сам мой скрипт прекращается. – risingtiger

+0

@risingtiger Попробуйте записать stdout и stderr в файл, чтобы вы могли видеть, что происходит. В моем добавленном примере вы заметите, что я обнаружил, что узел не был на моем пути, когда я его настраивал. –

+0

Казалось, это трюк! Сейчас я борется с этим. Огромное спасибо. – risingtiger

Смежные вопросы