这样做是为了让我不必在SSH中物理运行’node server.Js’并且必须打开它.
任何帮助,将不胜感激.
谢谢斯科特
解决方法 除了永远之外,我没有看到任何想要使用其他东西的罪犯.在我的项目中,我也避免使用这种工具,而更多地依赖于系统功能.因为我也试图避免以root身份运行我的应用程序,所以我不能使用SystemV或Upstart.这里有强大的shell脚本!我创建了几个简单执行任务的bash脚本,例如具有启动,停止,重启和查询状态能力的进程看门狗.
检查此代码.随意修改它.要使用它 – 将命令放在COMMAND参数中.并执行./path_to_script.sh -start.这将创建看门狗进程,它将启动您的节点进程并观察它是否死亡,如果是,它将重新启动它.这是非常不理想的,所以如果有人有什么要修复,添加,删除这里,随时在下面评论.
#!/bin/bashCURRENT_PATH=$(pwd)LOGFolDER=$CURRENT_PATH"/logs/"PIDFolDER=$CURRENT_PATH"/pID/"#PID file where the this script process ID is storedWATCHDOGPIDfile=$PIDFolDER"watchdog-admin.pID"#PID file where the node process ID is storedNODEPIDfile=$PIDFolDER"node-admin.pID"#Watchdog process error log fileWATCHDOGLOGfile=$LOGFolDER"admin-watchdog-error.log"#Node process error log fileNODELOGfile=$LOGFolDER"admin-error.log"#Command to be executed on daemon startCOMMAND="node ./admin/app.Js 1> /dev/null 2>> $NODELOGfile"ARG_1=start() { if [ -e $NODEPIDfile ]; then PID=$(cat $NODEPIDfile) if [ $(ps -o pID | grep $PID) ]; then return; else touch $NODEPIDfile nohup $COMMAND & echo $! > $NODEPIDfile fi else touch $NODEPIDfile nohup $COMMAND & echo $! > $NODEPIDfile fi}stop() { if [ -e $NODEPIDfile ]; then PID=$(cat $NODEPIDfile) if [ $(ps -o pID | grep $PID) ]; then kill -9 $PID fi rm $NODEPIDfile fi}stopdaemon() { stop rm $WATCHDOGPIDfile exit 0}log() { echo >> $WATCHDOGLOGfile}keep_alive() { if [ -e $NODEPIDfile ]; then PID=$(cat $NODEPIDfile) if [ $(ps -o pID | grep $PID) ]; then return; else log "Jim,he is dead!! Trying ressurection spell..." start fi else start fi}case x${ARG_1} in x-start ) echo "Starting daemon watchdog" nohup "" -daemon &> /dev/null & ;; x-daemon ) if [ -e $WATCHDOGPIDfile ]; then PID=$(cat $WATCHDOGPIDfile) if [ $(ps -o pID | grep $PID) ]; then exit 0; fi fi touch $WATCHDOGPIDfile echo $$> $WATCHDOGPIDfile #trap the interruption or kill signal trap stopdaemon INT SIGINT TERM SIGTERM start while true; do keep_alive wait sleep 1 done ;; x-stop ) echo "StopPing daemon watchdog" PID=$(cat $WATCHDOGPIDfile) kill $PID ;; x-status ) #check if process is running and PID file exists,and report it back ;; x ) echo "Usage {start|stop|status}"esacexit 0总结
以上是内存溢出为你收集整理的linux – BASH脚本启动node.js套接字服务器作为服务全部内容,希望文章能够帮你解决linux – BASH脚本启动node.js套接字服务器作为服务所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)