centOS下安裝nodejs小結以及守護進程使用與結束

/*  html

 *  備註:錯誤步驟:1~4,直接進行步驟5便可node

 */linux

1. 首先須要下載node安裝包,能夠在 https://nodejs.org/dist/ 中查找最新的安裝包地址,使用c++

wget https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz

提示shell

ERROR: certificate common name `*.nodejs.org' doesn't match requested host name `nodejs.org'.
To connect to nodejs.org insecurely, use `--no-check-certificate'.

是由於該網址所使用的協議是https協議,所以加上了--no-check-certificate參數apache

wget --no-check-certificate https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz

成功下載服務器

2. 嗯,上述方法須要安裝 gcc 與 gcc-c++,所以使用測試

yum -y groupinstall "Development Tools"

對上面二者進行了安裝ui

3. 將安裝包進行解壓,使用this

tar -xf node-v4.5.0.tar.gz

而後發現當前文件夾下多出了一個解壓後的文件夾

4. 接下來進入該目錄,使用make對其進行編譯,此時出錯,顯示的錯誤內容爲:

 

In file included from ../deps/v8/src/v8.h:29,
                 from ../deps/v8/src/accessors.cc:5:
../deps/v8/include/v8.h: In constructor 'v8::MaybeLocal<T>::MaybeLocal()':
../deps/v8/include/v8.h:353: error: 'nullptr' was not declared in this scope
../deps/v8/include/v8.h: In member function 'bool v8::MaybeLocal<T>::IsEmpty() const':
../deps/v8/include/v8.h:360: error: 'nullptr' was not declared in this scope
../deps/v8/include/v8.h: In member function 'bool v8::MaybeLocal<T>::ToLocal(v8::Local<S>*) const':
../deps/v8/include/v8.h:364: error: 'nullptr' was not declared in this scope
../deps/v8/include/v8.h: In member function 'bool v8::WeakCallbackInfo<T>::IsFirstPass() const':
../deps/v8/include/v8.h:430: error: 'nullptr' was not declared in this scope
../deps/v8/include/v8.h: At global scope:
../deps/v8/include/v8.h:469: error: expected unqualified-id before 'using'
../deps/v8/include/v8.h: In constructor 'v8::Global<T>::Global()':
../deps/v8/include/v8.h:790: error: 'nullptr' was not declared in this sc

 

經檢查,應該是gcc與gcc-c++版本問題,因此對其進行更新也許能夠解決。

5. 以後並無繼續上述方法。而是查到了使用

sudo yum install -y nodejs

能夠成功安裝nodejs,使用版本測試查看版本

node -v

顯示爲

v0.10.48

表示成功安裝 

在node安裝成功以後,寫一個經常使用的http模塊程序:server.js

 

1 var http = require('http');
2 var server = http.createServer(function(req, res){
3     res.writeHeader(200, {
4         'Content-Type': 'text/plain; charset=utf-8'
5     });
6     res.end('Hello World');
7 });
8 server.listen(8888);    // 監聽8888端口,其餘如apache服務器默認爲80端口

 

在使用

node server.js

以後,發現能夠訪問雲服務器ip地址的8888端口,界面輸出Hello World字樣。

可是有個問題,若是將所使用的shell關閉了之後,該頁面就訪問不到了,所以查找解決方法,發現須要「守護進程」

在查找過程當中,發現阮一峯大神的這篇博客中有提到這一點:可使用

node sever.js &

在後面加一個&使該進程變爲後臺任務,是最簡單的方法,可是當server.js修改的時候須要從新啓動server.js,並不能自動監測該文件的變化,所以能夠看博客中的幾個方法。

其中,使用linux中的 nohup方法加指令來使命令後臺運行,較爲簡單。

另外,若是須要結束後臺任務,須要kill命令

// 首選須要查找運行在8888端口上的進程id
sudo lsof -i:8888

// 而後使用這個命令殺死進程
sudo kill -9 24841

參考:http://www.cnblogs.com/likaopu/p/6553326.html

相關文章
相關標籤/搜索