Servy lets you run any app as a Windows service with full control over working directory, startup type, process priority, logging, health checks, environment variables, dependencies, pre-launch scripts and parameters. A fully managed alternative to NSSM.
Servy offers both a GUI and a Command-Line Interface (CLI), enabling you to create, configure, and manage Windows services interactively or automate these tasks in scripts and CI/CD pipelines.
If you've ever struggled with the limitations of the built-in sc
tool or found NSSM lacking in features or UI, Servy might be exactly what you need. It solves a common limitation of Windows services by allowing you to set a custom working directory. The built-in sc
tool only works with applications specifically designed to run as Windows services and always uses C:\Windows\System32
with no way to change it. This can break apps that depend on relative paths, configuration files, or local assets. Servy lets you run any app as a service and define the startup directory explicitly, ensuring it behaves exactly as if launched from a shortcut or command prompt.
Servy lets you run an optional script or executable before the main service starts. This is useful for preparing configurations, fetching secrets, or performing other setup tasks. If the pre-launch script fails, the service will not start unless you enable Ignore Failure option.
Servy continuously monitors your app, restarting it automatically if it crashes, hangs, or stops. It is perfect for keeping non-service apps running in the background without having to rewrite them as services. Use it to run Node.js, Python, .NET, Java, Go, Rust, PHP, or Ruby applications; keep web servers, background workers, sync tools, or daemons alive after reboots; and automate task runners, schedulers, or scripts in production with built-in health checks, logging, and restart policies.
- Download
- Installation Guide
- Usage
- CLI
- Export/Import Services
- Security
- Architecture
- Building from Source
- Troubleshooting
- FAQ
- Clean, simple UI
- CLI for full scripting and automated deployments
- Run any executable as a Windows service
- Set service name, description, startup type, priority, working directory, environment variables, dependencies, and parameters
- Run services as Local System, local user, or domain account
- Redirect stdout/stderr to log files with automatic size-based rotation
- Run pre-launch script execution before starting the service, with retries, timeout, logging and failure handling
- Prevent orphaned/zombie processes with improved lifecycle management and ensuring resource cleanup
- Health checks and automatic service recovery
- Monitor and manage services in real-time
- Export/Import service configurations
- Compatible with Windows 7–11 x64 and Windows Server editions
- Windows Service creation via GUI (Servy Configuration App)
- Logging stdout/stderr with size-based rotation
- Service monitoring and heartbeat checks
- Automatic restart on failure
- CLI for full scripting and automated deployments
- Support environment variables for child processes (#1)
- Support service dependencies
- Add "Log on as" configuration for Windows service
- Add support for pre-launch script execution before starting the service, with retries, timeout, and failure handling
- Service status query command in CLI
- Export/import service configurations
- Add Help, Documentation, and Check for Updates menus
- Servy Manager App for managing services installed by Servy
- Persist service configuration and track installed services in SQLite
- Provide a "shortcut" to open the Servy Configuration App for full edits (in progress)
- Start, stop, restart, and uninstall services (in progress)
- Display service status and uptime (in progress)
- Add search and filter functionality for services (in progress)
- Provide notifications for service events (failures, restarts)
- Provide a log viewer per service
- Add a health monitoring dashboard
- Add advanced scheduling and triggers (start service on event, time, or condition)
- Support automatic recovery actions beyond simple restart (e.g., run scripts)
- Add system tray integration for quick access
- Support service dependency management (start/stop order)
- Enable remote management of Servy services on other machines (long-term)
If this project helped you, saved you time, or inspired you in any way, please consider supporting its future growth and maintenance. You can show your support by starring the repository (it helps increase visibility and shows your appreciation), sharing the project (recommend it to colleagues, communities, or on social media), or making a donation (if you'd like to financially support the development) via GitHub Sponsors (one-time or monthly), PayPal, or Buy Me a Coffee.
Open-source software requires time, effort, and resources to maintain—your support helps keep this project alive, up-to-date, and accessible to everyone. Every contribution, big or small, makes a difference and motivates continued work on features, bug fixes, and new ideas.
If you have suggestions, issues, or want to contribute, feel free to open an issue or submit pull request.
Servy is MIT licensed.