deepwork-node-watchdog
v1.0.2
Published
A Node.js watchdog for DeepWork.
Readme
deepwork-node-watchdog
Watchdog de procesos para Node.js. Monitorea los procesos del sistema en intervalos configurables y mata automáticamente los procesos que estén en una lista negra. Compatible con Windows, Linux y macOS.
Pensado para entornos de trabajo enfocado: bloquea apps de distracción (Discord, WhatsApp, etc.) mientras trabajas.
Instalación
Como herramienta global (CLI)
npm install -g deepwork-node-watchdogComo dependencia en tu proyecto
npm install deepwork-node-watchdogUso como CLI
Iniciar el watchdog con un archivo de lista negra
deepwork-watchdog --blacklist /ruta/absoluta/a/blacklist.txtIniciar el watchdog con una lista de procesos separados por coma
deepwork-watchdog --blacklist discord,whatsapp,spotifyEspecificar intervalo de escaneo
deepwork-watchdog --blacklist discord,spotify --interval 5000Listar procesos en ejecución
deepwork-watchdog --listVer la versión
deepwork-watchdog --versionArgumentos disponibles
| Argumento | Tipo | Default | Descripción |
|----------------|-----------|---------|-----------------------------------------------------------------------------|
| --blacklist | string | — | Ruta absoluta a un archivo de lista negra, o nombres separados por coma |
| --interval | number | 3000 | Intervalo entre escaneos en milisegundos |
| --list | boolean | — | Lista los procesos activos del sistema y termina |
| --version | boolean | — | Muestra la versión del paquete y termina |
Archivo de lista negra (blacklist.txt)
Cada línea es el nombre de un proceso a matar. Las líneas vacías y los comentarios (#) son ignorados. La extensión .exe es opcional.
# Apps de distracción
discord
whatsapp
spotifyUso como librería
import { start, stop, scan, isRunning, listProcesses } from 'deepwork-node-watchdog';
// Iniciar el watchdog con una lista de procesos
start({
blacklist: ['discord', 'whatsapp', 'spotify'],
intervalMs: 5000, // Intervalo de escaneo en ms (default: 3000)
});
// Detener el watchdog
stop();
// Verificar si está corriendo
console.log(isRunning()); // true | false
// Escaneo único (sin loop)
await scan(['discord', 'spotify']);
// También acepta ruta a archivo de lista negra
await scan('/ruta/absoluta/a/blacklist.txt');
// Listar procesos activos
const processes = await listProcesses();
processes.forEach(p => console.log(`${p.name} (PID: ${p.pid})`));API
start(options: WatchdogOptions): void
Inicia el watchdog en loop. Si ya está corriendo, no hace nada.
| Opción | Tipo | Default | Descripción |
|--------------|-----------------------|---------|-------------------------------------------------------------------|
| blacklist | string \| string[] | — | Ruta a un archivo de lista negra, o array de nombres de procesos |
| intervalMs | number | 3000 | Intervalo entre escaneos en milisegundos |
stop(): void
Detiene el watchdog y limpia el timer interno.
scan(blacklist: string | string[]): Promise<void>
Ejecuta un escaneo único. Acepta un array de nombres de procesos o la ruta absoluta a un archivo de lista negra.
isRunning(): boolean
Retorna true si el watchdog está activo.
listProcesses(): Promise<{ pid: number; name: string }[]>
Retorna la lista de procesos activos en el sistema.
Compatibilidad
| Sistema operativo | Comando para listar | Comando para matar |
|-------------------|---------------------|--------------------|
| Windows | tasklist | taskkill /F /PID |
| Linux / macOS | ps | kill -9 |
Licencia
ISC — Kevin Javier Reyes
