New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ntsuspend

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ntsuspend

Suspend and resume processes on Windows

  • 1.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

NtSuspend

Suspend and resume processes on Windows using NtSuspendProcess() and NtResumeProcess(). This is a Node.js only module, it won't run in any browser or other JavaScript environments.

This project includes TypeScript declarations.

Feel free to ask anything by opening an issue on GitHub.

Only NodeJS 10.x or higher is supported

Install

The library can be installed from NPM or from GitHub:

npm i ntsuspend

npm i FedericoCarboni/node-ntsuspend

To use it in your project you can import or require() it.

import { suspend, resume } from 'ntsuspend';
const { suspend, resume } = require('ntsuspend');

Note: Make sure to use this package as an optional dependency if you want to support multiple operating systems. Optional imports in ESM can be achieved with top-level await, still unavailable in LTS releases, and dynamic import or by using createRequire().

if (process.platform === 'win32') {
  const ntsuspend = await import('ntsuspend');
  // ... use ntsuspend
}
import { createRequire } from 'module';

if (process.platform === 'win32') {
  const ntsuspend = createRequire(import.meta.url)('ntsuspend');
  // ... use ntsuspend
}

In CommonJS require() can already be used conditionally.

if (process.platform === 'win32') {
  const ntsuspend = require('ntsuspend');
  // ... use ntsuspend
}

Usage

The package exports suspend() and resume(), they take the process' PID and return true on success, false otherwise.

if (!suspend(pid))
  console.log('Could not suspend process');
if (!resume(pid))
  console.log('Could not resume process');

If you are using Node.js' child processes the process id can be obtained by using subprocess.pid. Note: make sure that you're passing the actual process id to ntsuspend; the ChildProcess instance returned by child_process.exec is a handle to the shell not to the actual subprocess. Use child_process.spawn and make sure that the shell option is disabled. See #3.

const subprocess = spawn('executable');
if (!suspend(subprocess.pid))
  console.log('Could not suspend process');

Note: If you're not on Windows suspend() and resume() will be undefined.

Disclaimer

This library uses NtSuspendProcess() and NtResumeProcess() from NTDLL, these functions are not officially documented on MSDN; they have been consistently available since Windows XP, but are not guaranteed to work in the future.

Keywords

FAQs

Package last updated on 21 Jun 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc