树莓派开机运行node.js脚本的方法

http://gyzx.swjtu.edu.cn/icsites/devzone/node/352

一、配置Raspberry Pi无线网络。
插上无线网卡
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
然后增加类似这样的一段:

network={
ssid="gyzx-wifi1"
psk="password"
id_str="gyzx"
}

保存,然后ifdown wlan0 ,然后ifup wlan0.
这时候执行ifconfig发现,pi的wlan0已经DHCP到了IP。

此时可以使用ssh来远程连接到Raspberry Pi,这样就可以看文章,粘贴复制~~

二、安装node.js
node.js是基于google chrome v8 架构的一个事件驱动的js运行平台,有非常优秀的实时性能,很方便用来做控制。关于node.js,可移步http://nodejs.org/做更深入的研究。

pc上面
下载http://nodejs.org/download/。
安装完成后,用文本编辑器(推荐everedit)、cmd即可开始开发了。

Raspberry pi上
ssh连接到raspberry pi上。
首先创建一个nodejs的安装目录:
sudo mkdir /opt/node

然后下载安装
wget http://nodejs.org/dist/v0.11.1/node-v0.11.1-linux-arm-pi.tar.gz
tar xvzf node-v0.10.2-linux-arm-pi.tar.gz
sudo cp -r node-v0.10.2-linux-arm-pi/* /opt/node

配置环境变量
把nodejs的路径输出到系统path里面。编辑 “/etc/profile”
nano /etc/profile
在 “export”命令之前添加两行内容,最后应该是这样的:

...
NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"
export PATH
...
这个时候logout,然后再login,环境变量就生效了。
执行node命令,是不是看到了熟悉的界面。

三、将应用添加为服务
建个目录用来放应用:
mkdir ~/app
首先写一个helloword的http应用:
nano server.js
输入:
var http = require('http');

http.createServer(function(req,resp) {
resp.writeHead(200, {"Content-Type": "text/plain"});
resp.write("Hello World");
resp.end();

console.log("sample output to console");

}).listen(8080);

这个应用就是监听8080端口,输出hello word。

创建一个服务管理脚本
nano nodejs.sh
然后输入:
#!/bin/bash

NODE=/opt/node/bin/node
SERVER_JS_FILE=/home/pi/app/server.js
USER=pi
OUT=/home/pi/nodejs.log

case "$1" in

start)
echo "starting node: $NODE $SERVER_JS_FILE"
sudo -u $USER $NODE $SERVER_JS_FILE > $OUT 2>$OUT &
;;

stop)
killall $NODE
;;

*)
echo "usage: $0 (start|stop)"
esac

exit 0

修改权限为可执行
chmod 755 nodejs.sh、
复制到/etc/init.d
sudo cp nodejs.sh /etc/init.d
注册为开机启动
sudo update-rc.d nodejs.sh defaults

四、测试
/etc/init.d/nodejs.sh start 启动服务 (stop是关闭服务)
然后http://raspberrypi--ip:8080 怎么样,是不是看到Hello Word.

重启后,测试,还是可以看到,说明自动启动也正常了。

五、其它

sodu:
使用sudo来执行node,npm的时候,注意要加上“-i”参数,这样是告诉系统,你要使用root的环境。比如全局安装express框架
sudo -i npm install express -g

升级node.js
升级node.js可按照一下步骤:
1、检查是否有新版的arm包下载。
2、删除旧版本:

# sudo rm /opt/node -r
3、重建文件夹

# sudo mkdir /opt/node
解压缩新版文件包

# tar xvzf node-v0.10.x-linux-arm-pi.tar.gz
# sudo cp -r node-v0.10.x-linux-arm-pi/* /opt/node
查看版本:
# node -v
v0.10.2


另有英文资料参考

http://weworkweplay.com/play/raspberry-pi-nodejs/

http://www.kitware.com/blog/home/post/433


ps:下一篇文章:树莓派 通过串口与单片机连接,并提供网络功能,开机自动运行nodejs

你可能感兴趣的:(树莓派开机运行node.js脚本的方法)