zoukankan      html  css  js  c++  java
  • Nodejs随笔(一):Hello World!

    声明:本人用的是Ubuntu 14.04 LTS 系统。

    一、Nodejs安装:

      <1>直接apt-get安装,最简单:sudo apt-get install nodejs

      <2>编译安装

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install build_essential openssl libssl-dev pkg-config
    wget http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz
    tar -zxvf node-v0.12.2-linux-x64.tar.gz
    cd node-v0.12.2-linux-x64
    ./configure
    make
    sudo make install

      验证是否安装成功:

    mesogene@mesogene-team:~/nodejs-workspace/01$ node -v
    v0.12.1
    mesogene@mesogene-team:~/nodejs-workspace/01$ npm -version
    2.5.1

    参考https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

    二、Hello World程序

    mesogene@mesogene-team:~/nodejs-workspace/01$ cat app.js 
    var http = require('http');
    http.createServer(function(req, res){
        // content header
        res.writeHead(200, { 'Content-Type':'text/html' });
        // write message adn signal communication is complete
        res.end('Hello World!');
    }).listen(process.env.PORT || 8124);
    // }).listen(8124);
    
    console.log('Server running on 8124');

      使用node app.js后,可在浏览器地址栏输入:http://localhost:8124/ 以查看结果。

      如果直接在命令行使用node app.js,它会占用我一个命令行窗口。有时,我不想其占用那个窗口,我们可以将node程序转为后台运行,那就的使用nohup命令来帮忙了。用法如下:

    mesogene@mesogene-team:~/nodejs-workspace/01$ nohup node app.js &
    [2] 7451
    [1]   Terminated              nohup node app.js > ./log
    mesogene@mesogene-team:~/nodejs-workspace/01$ nohup: ignoring input and appending output to ‘nohup.out’
    
    mesogene@mesogene-team:~/nodejs-workspace/01$ 

      或者:将输入重定向到当前目录的log文件中。

    mesogene@mesogene-team:~/nodejs-workspace/01$ nohup node app.js > ./log &
    [1] 7422
    mesogene@mesogene-team:~/nodejs-workspace/01$ nohup: ignoring input and redirecting stderr to stdout
    
    mesogene@mesogene-team:~/nodejs-workspace/01$ cat log 
    Server running on 8124

      问题来了,我如何杀死正在运行的node app.js呢?

      当然,需借助GNU/Linux shell命令的帮忙:ps和kill(nohup也是GNU/Linux shell命令)。

    mesogene@mesogene-team:~/nodejs-workspace/01$ ps -ef | grep node
    root      2830     1  0 09:53 ?        00:00:00 /sbin/mount.ntfs /dev/sdc2 /media/mesogene/Richard -o rw,nosuid,nodev,uhelper=udisks2,uid=1000,gid=1000,dmask=0077,fmask=0177
    root      2875     1  0 09:53 ?        00:00:00 /sbin/mount.ntfs /dev/sdc1 /media/mesogene/Richard1 -o rw,nosuid,nodev,uhelper=udisks2,uid=1000,gid=1000,dmask=0077,fmask=0177
    mesogene  3628  3590  0 09:54 pts/0    00:00:00 node
    mesogene  7451  7244  0 10:30 pts/27   00:00:00 node app.js
    mesogene  7468  7244  0 10:32 pts/27   00:00:00 grep --color=auto node
    mesogene@mesogene-team:~/nodejs-workspace/01$ kill 7451
    mesogene@mesogene-team:~/nodejs-workspace/01$ 

    扩展:ps与kill命令

    一、ps命令比较复杂,用Unix、BSD和GNU三种使用风格,下面主要列出简单用法,下一次单独写ps用法。以下是ps的两种常用方法:

      ps -ef(Unix风格),UID代表:启动进程的用户、PID:进程号、PPID:父进程号、C:进程生命周期CPU利用率...

    mesogene@mesogene-team:~$ ps -ef 
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 09:52 ?        00:00:01 /sbin/init
    root         2     0  0 09:52 ?        00:00:00 [kthreadd]
    root         3     2  0 09:52 ?        00:00:00 [ksoftirqd/0]
    root         4     2  0 09:52 ?        00:00:00 [kworker/0:0]
    root         5     2  0 09:52 ?        00:00:00 [kworker/0:0H]

      ps ax(BSD风格)输出的第一列是ProcessID即PID,进程号。第三列是进程当前状态(S代表睡眠,SW代表在睡眠和等待,R代表在运行中)

    mesogene@mesogene-team:~$ ps ax  
      PID TTY      STAT   TIME COMMAND
        1 ?        Ss     0:01 /sbin/init
        2 ?        S      0:00 [kthreadd]
        3 ?        S      0:00 [ksoftirqd/0]
        4 ?        S      0:00 [kworker/0:0]
        5 ?        S<     0:00 [kworker/0:0H]
        7 ?        S      0:01 [rcu_sched]
        8 ?        S      0:00 [rcuos/0]
        9 ?        S      0:00 [rcuos/1]

    二、kill与killall(结束进程)

    kill使用方法是:kill  [PID],kill只能通过进程号PID结束进程。

    mesogene@mesogene-team:~$ kill 7422

    killall使用方法:killall [ProcessName],killall只能通过进程名来结束进程。killall支持通配符。

    mesogene@mesogene-team:~$ killall http*      #结束所有以http开头的进程。
  • 相关阅读:
    bzoj 1086 [SCOI2005]王室联邦——思路
    bzoj 3809 Gty的二逼妹子序列——莫队+分块
    bzoj 3781 小B的询问——分块
    bzoj 3309 DZY Loves Math——反演+线性筛
    洛谷 1079 Vigenère 密码——模拟水题
    洛谷 1082 同余方程——exgcd(水题)
    bzoj2662 [BeiJing wc2012]冻结 ——分层图
    bzoj2242 [SDOI2011]计算器——BSGS
    bzoj1008 [HNOI2008]越狱——快速幂
    bzoj1607 [Usaco2008 Dec]Patting Heads 轻拍牛头——暴力
  • 原文地址:https://www.cnblogs.com/Richard-xie/p/4391756.html
Copyright © 2011-2022 走看看