如何使用nodejs实现守护进程

写一个一直运行永远不挂掉的程序是一件很难的事儿,至少一次性写成很难。但是为了不因为程序挂掉而耽误时间我们往往需要一个守护进程来看着程序是否挂掉,如果挂掉那么将程序重启,重启的同时还要收集挂掉的原因,这样我们的程序才会越来越健壮。

今天我遇到了这样的问题,如下是我使用nodejs实现的一个守护进程,

var spawn = require('child_process').spawn;  

function start(){
    nw = spawn('./nw', ['book']);  

    nw.on('close',function(code, signal){
        nw.kill(signal);
        nw = start();
    });
    nw.on('error',function(code, signal){
        nw.kill(signal);
        nw = start();
    });
    return nw;
};  

start();

此端代码将调运外部的nw命令,当子进程退出或者出错的时候将子进程重启,程序写的简陋了些,仅仅提供一个思想。

另外我们知道,我们的程序往往是有状态的。比如我们写一段程序处理数据,如果程序重启那么需要能继续上一次处理的位置继续处理。

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索程序
, 进程
, 磊科nw392
, function
, signal
, start
, 挂掉
, 一个
, nodejs错误处理
重启如何实现
nodejs守护进程、linux 守护进程实现、java守护进程实现代码、如何实现守护进程、python实现守护进程,以便于您获取更多的相关知识。

时间: 2024-10-02 23:55:10

如何使用nodejs实现守护进程的相关文章

node.js应用后台守护进程管理器Forever安装和使用实例_node.js

我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行.我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行. 首先,安装Forever: 复制代码 代码如下: npm install forever -gd 这样Forever就安装好了,我们可以直接运行Forever命令: 复制代码 代码如下: forever --helpforever start app.jsforever stop

python-如何在linux下开启守护进程

问题描述 如何在linux下开启守护进程 问题是这样的:我用python写了两个模块:Store.py,Search.py,在这两个文件中,分别会开启Store线程和Search线程.这两个线程是需要一直开启的,如果发现这两个线程挂了,需要重新开启. 我之前的做法是:在linux的begin.sh脚本中写下如下内容: #!/bin/bash python Store.py python Search.py 然后执行./begin.sh. 然后出现下面的问题: 由于Store.py中开启了线程,程

python:守护进程deamon

一.守护进程的基本编码规范     详细参见:<AdvancedProgrammingin The Unix Environment>Section 13.3 Page 583      本小节将介绍一些守护进程的基本编码规范,这些规范将阻止守护进程与当前环境产生一些不必要的交互.本节将通过一个函数daemonize实现这些规范.     1. 首先要做的被称为 umask,这一步骤会将文件创建掩码重置为0.这一步的原因是守护进程继承(inherited)得到的文件掩码有可能会拒绝某些特定的文

php守护进程 加linux命令nohup实现任务每秒执行一次

Unix中 nohup 命令功能就是不挂断地运行命令,同时 nohup 把程序的所有输出到放到当前目录 nohup.out 文件中,如果文件不可写,则放到 <用户主目录>/nohup.out 文件中.那么有了这个命令以后我们php就写成shell 脚本使用循环来让我们脚本一直运行下去,不管我们终端窗口是否关闭都能够让我们php 脚本一直运行下去. 马上动手写个 PHP 小程序,功能为每30秒记录时间,写入到文件 复制代码 代码如下: # vi for_ever.php #! /usr/loca

Linux多任务编程(七) Linux守护进程及其基础实验

守护进程概述 守护进程,又叫daemon进程(不知怎的,我突然想起来吸血鬼日记中的达蒙了,很好 看的美剧),是Linux中的后台服务进程.他是一个生存期较长的进程,通常独立于控制终端并且周期性地执行 某种任务或者等待处理某些发生的事件.守护进程常常在系统引导载入时启动,在系统关闭时终止.Linux有 很多系统哦服务,大多数服务都是通过守护进程实现的.同时,守护进程还能完成许多系统任务,例如,作业 规划进程cronf.打印进程lqd等(这里的结尾字母 d 就是 daemon的意思). 在Linux

SSSD系统安全服务守护进程

SSSD是红帽企业版Linux6中新加入的一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权.SSSD是介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器). 这样做有一些几点优势: 1.避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载. 2.允许离线授权.SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务

Python守护进程用法实例分析

  本文实例讲述了Python守护进程用法.分享给大家供大家参考.具体分析如下: 守护进程是可以一直运行而不阻塞主程序退出.要标志一个守护进程,可以将Process实例的daemon属性设置为True.代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import os import time import random import sys from multiprocessing import Process,current_pr

python实现的守护进程用法实例

  本文实例讲述了python实现的守护进程(Daemon)用法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 def createDaemon(): "'Funzione che crea un demone per eseguire un determinato programma-"' import os #

PHP扩展程序实现守护进程

 一般Server程序都是运行在系统后台,这与普通的交互式命令行程序有很大的区别.glibc里有一个函数daemon.调用此函数,就可使当前进程脱离终端变成一个守护进程,具体内容参见man daemon.PHP中暂时没有此函数,当然如果你有兴趣的话,可以写一个PHP的扩展函数来实现. PHP命令行程序实现守护进程化有2种方法: 一 .使用nohup   复制代码 代码如下: nohup php myprog.php > log.txt &   这里就实现了守护进程化. 单独执行 php my