node-persistent-software
Spawn a software and keep it running
Installation
$ npm install node-persistent-software
asynchronous-eventemitter)
Doc (extends :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