2013-02-12 72 views
13

使用Upstart啓動Node.js,當試圖訪問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 2013-02-12 01:34:59

+0

非常感謝! :) – 2013-02-12 01:37:28

+0

沒問題。順便說一句,你可以接受你自己的答案。 – jbowes 2013-02-12 01:40:25