JSPM

node-systemctl

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q5445F
  • License ISC

Systemd interface for NodeJS

Package Exports

  • node-systemctl
  • node-systemctl/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-systemctl) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-systemctl

Control your systemd services from the comfort of your NodeJS script, using this hacky interface module.

Installation

npm i node-systemctl

or

yarn add node-systemctl

Usage

Note: examples assume ES6 modules enabled.

Quick start example

import SystemService from 'node-systemctl'

// construct the service
// using await
const unit = await new SystemService('custom-unit')
if (!unit.isActive) await unit.start()

// or using .then()
new SystemService('custom-unit').then(async unit => {
  if (!unit.isActive) await unit.start()
})

If your service requires root privilages (or you are getting the Interactive authentication required error) pass a truthy value as the second argument:

const superUnit = await new SystemService('custom-unit', true)

Methods

Note: Following methods are async, use await if you need to wait for them to finish.

  • start() - Actually restart() in disguise, see below.
  • restart() - Starts/restarts the service. Equivalent of systemctl restart <service>.
  • stop() - Stops the service. Equivalent of systemctl stop <service>.
  • enable() - Enables start at boot. Equivalent of systemctl enable <service>.
  • disable() - Disables start at boot. Equivalent of systemctl disable <service>.
  • edit() - Opens the unit file in an editor. Equivalent of systemctl edit --full <service>. (Only for use in a CLI environment)

Getters

  • isActive: boolean - Returns true if the service is running, i.e., the following are both true:
    • service ActiveState is active
    • service SubState is running
  • isEnabled: boolean - Returns true if service start at boot is enabled, i.e., UnitFileState is enabled or static.
  • status: string - Returns service state as would be displayed in output of systemctl status. Ex.: active (running)