EXE Service — Documentation

EXE Service — a GUI utility that turns any EXE file into a Windows service in three clicks. Configure via JSON: startup parameters, logging, auto-restart, and JS scripts for notifications (Email/Slack/Telegram). Works through the standard Windows SCM — no wrappers needed. Ideal for Nginx, Syncthing, backends, and monitoring.

Hardware

  • CPU: modern x64 or x86 processor
  • Memory: min 20 mb RAM
  • Hard Disk Space: 25 MB for installation files and sufficient disk space for package files

Operating systems

  • Windows 11
  • Windows 10
  • Windows 7 (Packages only)
  • Windows Server 2012/2012 R2/2016/2019/2022/2025
  • Hyper-V Server 2019
  • Windows Core, and Nano Server editions

Requirements

  • For svc_* functions — run as administrator
  • UTF-8 console (set automatically)

JsN

JsN.exe is a lightweight engine for running JavaScript scripts oriented for services. It has access to native Windows APIs: process monitoring, service management, HTTP requests, and email sending.


Contents

File Description
Configuration Config format, running
Process API Process monitoring and management
Service API Windows service management
HTTP API HTTP requests (GET / POST)
Email API Email sending (SMTP)
Examples Ready-made examples: Discord, Slack, Telegram, monitoring

Quick start

1. Create a JSON config

{
  "scriptfile": "./my_script.js",
  "arg": {
    "process_name": "notepad.exe"
  }
}

2. Write a script

// my_script.js
let f = proc_find(arg.process_name);
if (f.found) {
    let cpu = proc_cpu(f.pid);
    let ram = proc_ram(f.pid);
    console.log("PID:", f.pid);
    console.log("CPU:", cpu.cpu.toFixed(1) + "%");
    console.log("RAM:", ram.ram_mb.toFixed(1) + " MB");
} else {
    console.log("Process not found");
}

3. Run

JsN.exe my_config.json

Available functions by module

Module Functions Requires admin
Process monitoring proc_find, proc_cpu, proc_ram, proc_alive, proc_service
Process management proc_kill, proc_run
Windows services svc_status, svc_start, svc_stop, svc_restart
HTTP http_get, http_post
Email send_email

The arg variable

All content of the "arg" field from the JSON config is available in the script as a global object arg:

{ "arg": { "host": "smtp.example.com", "port": 587 } }
console.log(arg.host);  // "smtp.example.com"
console.log(arg.port);  // 587

Result pattern

All functions return an object. On success error is an empty string; on failure it contains a description:

let r = proc_kill(1234);
if (r.ok) {
    console.log("Done");
} else {
    console.log("Error:", r.error);
}