node-persistent-software
TypeScript icon, indicating that this package has built-in type declarations

1.5.1 • Public • Published

node-persistent-software

Spawn a software and keep it running

Build status Coverage status Dependency status Dev dependency status Issues Pull requests

Installation

$ npm install node-persistent-software

Doc (extends : asynchronous-eventemitter)

Attributes

  • maxCountRun: number max start iteration
  • successCountRun: number current success start iteration

Constructor

  • constructor(software: string, args?: Array<string>, options?: object) => see spawn documentation

Methods

  • max(maxIteration: number) : this change max iterations and reset current
  • infinite() : this no max iteration and reset current
  • start() : this run the software for the first time
  • end() : this stop the software and does not restart it

Events

  • on("error", (err: Error) => void) : this fire if an error occurs (use try/catch to avoid loop)

  • on("firststart", () => void) : this fire if the software starts for the first time

  • on("restart", () => void) : this fire if the software restarts

  • on("start", (child_process: child_process.ChildProcess) => void) : this fire if the software starts (firststart && restart) => see spawn documentation

  • on("stop", () => void) : this fire if the software is killed

  • on("end", () => void) : this fire if the software is killed and cannot be restarted

Examples

Native

const PersistantSoftware = require("node-persistent-software");
 
new PersistantSoftware("node", [ "-v" ]).on("error", (msg) => {
  console.log(msg);
})
 
.infinite()
 
.on("firststart", () => {
  console.log("node is started for the first time !");
}).on("restart", () => {
  console.log("node is started again...");
}).on("start", (child_process) => {
  console.log("anyway, node is started.");
})
 
.on("stop", () => {
  console.log("node is stopped, trying to restart...");
}).on("end", () => {
  console.log("/!\\ node is stopped and cannot be restarted /!\\");
}).start();
 
 
new PersistantSoftware("node", [ "-v" ]).on("error", (err) => {
  console.log(err);
})
 
.max(5)
 
.on("firststart", () => {
  console.log("node is started for the first time !");
}).on("restart", () => {
  console.log("node is started again...");
}).on("start", () => {
  console.log("anyway, node is started.");
})
 
.on("stop", () => {
  console.log("node is stopped, trying to restart...");
}).on("end", () => {
  console.log("/!\\ node is stopped and cannot be restarted /!\\");
}).start();

Typescript

import PersistantSoftware = require("node-persistent-software");
 
new PersistantSoftware("node", [ "-v" ]).on("error", (err) => {
  console.log(err);
})
 
.infinite();

Tests

$ npm run-script tests

License

ISC

Package Sidebar

Install

npm i node-persistent-software

Weekly Downloads

3

Version

1.5.1

License

ISC

Unpacked Size

25.2 kB

Total Files

11

Last publish

Collaborators

  • psychopoulet