node-systemctl
v0.1.1
Published
Systemd interface for NodeJS
Downloads
4
Maintainers
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()
- Actuallyrestart()
in disguise, see below.restart()
- Starts/restarts the service. Equivalent ofsystemctl restart <service>
.stop()
- Stops the service. Equivalent ofsystemctl stop <service>
.enable()
- Enables start at boot. Equivalent ofsystemctl enable <service>
.disable()
- Disables start at boot. Equivalent ofsystemctl disable <service>
.edit()
- Opens the unit file in an editor. Equivalent ofsystemctl edit --full <service>
. (Only for use in a CLI environment)
Getters
isActive: boolean
- Returnstrue
if the service is running, i.e., the following are both true:- service
ActiveState
isactive
- service
SubState
isrunning
- service
isEnabled: boolean
- Returnstrue
if service start at boot is enabled, i.e.,UnitFileState
isenabled
orstatic
.status: string
- Returns service state as would be displayed in output ofsystemctl status
. Ex.:active (running)