2013-02-12 5 views
13

Запуск Node.js с помощью Upstart при попытке доступа к файлам в Node.js он не может получить к ним доступ, не используя полный путь. Мне нужно, чтобы он работал с рабочим каталогом.Рабочий стол Upstart node.js

start on startup 
stop on shutdown 

script 
     echo $$ > /var/run/mynodeapp.pid 
     exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1 
end script 

pre-start script 
     echo "Starting" >> /var/log/mynodeapp.sys.log 
end script 

pre-stop script 
     rm /var/run/mynodeapp.pid 
     echo "Stopping" >> /var/log/mynodeapp.sys.log 
end script 

ответ

24

Решение заключается в изменении каталога внутри сценария. В моем случае пользователь является mynodeapp, а файлы узлов находятся в каталоге пользователей (/ home/mynodeapp /).

script 
     chdir /home/mynodeapp/ 
     echo $$ > /var/run/mynodeapp.pid 
     exec sudo -u mynodeapp node server.js >> /var/log/mynodeapp.sys.log 2>&1 
end script 

я до сих пор выяснить, что означает $$ на эхо линии или 2> & 1. Может быть, кто-то может звонить в с этим, если они знают!

+2

Посмотрите, что такое $$: http://stackoverflow.com/questions/5163144/what-are-the-special-dollar-sign-shell-variables – jbowes

+0

Блестящее спасибо! :) –

+0

без проблем. Кстати, вы можете принять свой собственный ответ. – jbowes

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