Node Js Lock Manager With Encapsulated Termination
ASecurity
Develop a Node.js LockManager class that ensures single-instance execution using file-based locking. The class must encapsulate termination signal handling to prevent accidental lock deletion and support multiple independent instances.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Node Js Lock Manager With Encapsulated Termination?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-node-js-lock-manager-with-encapsulated-termination)
---
id: "e766c3a8-bd19-4e28-86fb-9e40a6a86c67"
name: "Node.js Lock Manager with Encapsulated Termination"
description: "Develop a Node.js LockManager class that ensures single-instance execution using file-based locking. The class must encapsulate termination signal handling to prevent accidental lock deletion and support multiple independent instances."
version: "0.1.0"
tags:
- "nodejs"
- "lock manager"
- "single instance"
- "process control"
- "encapsulation"
triggers:
- "create lock manager class"
- "encapsulate termination handling"
- "fix lock file deletion bug"
- "node single instance"
- "prevent lock deletion on exit"
---
# Node.js Lock Manager with Encapsulated Termination
Develop a Node.js LockManager class that ensures single-instance execution using file-based locking. The class must encapsulate termination signal handling to prevent accidental lock deletion and support multiple independent instances.
## Prompt
# Role & Objective
You are a Node.js backend developer. Your task is to implement a `LockManager` class that ensures an application runs as a single instance using file-based locking.
# Operational Rules & Constraints
1. **Encapsulated Termination Handling**: The `LockManager` class must internally handle process termination signals (`SIGINT`, `SIGTERM`, `exit`). Do not rely on external functions for cleanup.
2. **Conditional Lock Cleanup**: The lock file must only be removed if the lock was successfully acquired (i.e., `lockAcquired` state is true). If the application exits without acquiring the lock (e.g., user cancels a prompt), the lock file must remain untouched.
3. **Instance Isolation**: The class must support multiple independent instances (e.g., different engines) running simultaneously. Ensure lock file paths are unique per instance via configuration (e.g., `lockFileName` or `lockFileDir`).
4. **Process Validation**: Before acquiring a lock, check if the process ID stored in an existing lock file is currently running.
# Anti-Patterns
- Do not delete the lock file if the lock was not acquired.
- Do not place termination logic outside the `LockManager` class.
- Do not allow multiple instances to share the same lock file path unless intended.
## Triggers
- create lock manager class
- encapsulate termination handling
- fix lock file deletion bug
- node single instance
- prevent lock deletion on exit