Create and manage native Linux daemons from Node.js scripts with intelligent process monitoring.
node-linux is a Node.js module that allows developers to convert JavaScript applications into native Linux daemons. It solves the problem of running Node.js scripts as persistent background services with proper system integration, enabling management via standard Linux service commands. The module handles service installation, monitoring, and intelligent restart logic to maintain application availability.
Node.js developers and DevOps engineers who need to deploy and manage Node.js applications as production services on Linux servers. It's particularly useful for those requiring reliable background processes with system-level integration.
Developers choose node-linux because it provides native Linux service integration with built-in intelligent monitoring and restart capabilities, unlike basic process managers. Its configurable failure recovery prevents server overload during crashes, and it works seamlessly with existing Linux service management tools.
Create native background daemons on Linux systems.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements configurable exponential backoff for restarts with caps on retries, preventing server overload during crashes as detailed in the 'Smarter Restarts' section.
Generates standard systemv init.d scripts, allowing services to be managed via Linux `service` commands and logs automatically routed to `/var/log`.
Supports environment variables, custom user/group permissions, and tunable restart parameters through the Service object, enabling tailored service setups.
Provides events for installation, start, stop, and errors, allowing developers to hook into service management phases for precise control.
Only supports systemv init.d, lacking native integration for modern init systems like systemd or upstart, as admitted in the README's contributions section.
The README notes unforeseen life circumstances and requests community contributions for missing features, indicating potential abandonment or slow updates.
Part of a separate suite (node-windows, node-mac), requiring different implementations for cross-platform deployments, which adds complexity.