nodejs起動スクリプト

2839 ワード

nodejsは最近比較的に火を比較して、多くの実例はnginxの逆方向の代行に協力して、スピードのバーの.
最近のプロジェクトではnodejsが使われていますが、ついでに起動スクリプトを使いました.
1、rpmdevtoolsをインストールして、それは便利なジェネレーション/etc/init.d/以下のスタートスクリプトができます.
yum install rpmdevtools
cd /etc/init.d/
rpmdev-newinit node
mv node.init node
chmod 755 node
このようにすると、現在のディレクトリでnode.initのスクリプトの一例が生成されます.
慣れていれば、コピー/etc/init.d/下のいずれかのシナリオを修正してもいいです.
2、nodejsをインストールする
yum install nodejs* npm --enablerepo=epel
3、起動スクリプトに内容を追加し、具体的な起動オプションはカスタマイズが必要です.大体次の通りです.
#!/bin/sh
#
# node - Server-side JavaScript
#
# chkconfig:   <default runlevel(s)> <start> <stop>
# description: <description, split multiple lines with \
#              a backslash>
# http://fedoraproject.org/wiki/FCNewInit/Initscripts
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:
# Description:
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/bin/node"
prog=$(basename $exec)
js=/tmp/test.js
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
    echo -n $"Starting $prog: "
    # if not running, start it up here, usually something like "daemon $exec"
        /bin/su -l nginx -c "$prog $js --port=8081 --dir=/tmp >/dev/null 2>&1"
        /bin/su -l nginx -c "$prog $js --port=8082 --dir=/tmp >/dev/null 2>&1"
        /bin/su -l nginx -c "$prog $js --port=8083 --dir=/tmp >/dev/null 2>&1"
        /bin/su -l nginx -c "$prog $js --port=8084 --dir=/tmp >/dev/null 2>&1"
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: "
    # stop it here, often "killproc $prog"
        killproc $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    stop
    start
}
case "$1" in
    start|stop|restart)
        $1
        ;;
    status)
        status $prog
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 2
esac
node起動にはいくつかのオプションが必要です.jsファイル、ポート、アップロードディレクトリは必要に応じてカスタマイズしてください.
ウェブ上の他のスクリプトと比較して、本スクリプトの特徴
1、上記のnodejsはnginxユーザーとして運行しています.これは必要です.rootを使うのは裸で走るのと同じです.
2、nodeは完全にバックグラウンドで運行しています.スクリーンでは一切の入出力を行いません.
3、chkconfig起動のサポート