Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sd-daemon

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sd-daemon

Bindings for libsystemd-daemon

  • 2.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
284
decreased by-15.73%
Maintainers
1
Weekly downloads
 
Created
Source

Bindings for libsystemd-daemon

Dependencies

  • build-essential
  • pkg-config
  • libsystemd-dev or libsystemd-daemon-dev

Install

npm install sd-daemon

Debian

sudo apt-get install devscripts
sudo mk-build-deps -ir
debuild
sudo dpkg -i ../node-sd-daemon_*.deb

CentOS

sudo yum install systemd-devel

Test

Watchdog

test.service:

...
[Service]
WatchdogSec=10s

test.js:

...
sd.startWatchdogPing();
systemctl --user link "$PWD/test/test.service"
systemctl --user start test.service

curl localhost:8089
systemctl --user status test.service
curl localhost:8089/block

...
systemctl --user status test.service

systemctl --user stop test.service
systemctl --user disable test.service

Socket Activation

test-socket.socket:

...
[Socket]
ListenStream=8088

test-socket.service:

...
[Service]
ExecStart=/usr/bin/nodejs test-socket.js
NonBlocking=yes

test-socket.js:

var listeners = sd.listeners();
if (listeners.length) {
    server.listen(listeners[0]);
}
systemctl --user link "$PWD/test/test-socket.socket" "$PWD/test/test-socket.service"
systemctl --user start test-socket.socket

curl localhost:8088
systemctl --user status test-socket.service
...

systemctl --user stop test-socket.socket test-socket.service
systemctl --user disable test-socket.socket

Cluster (two instances)

test-s3@.service

[Service]
ExecStart=/usr/bin/nodejs test-s3.js %i
NonBlocking=yes
Sockets=test-s3.socket

test-s3.socket:

[Socket]
ListenStream=8087
Service=test-s3@1.service
Service=test-s3@2.service
$ systemctl --user link "$PWD/test/test-s3@.service" "$PWD/test/test-s3.socket"
$ systemctl --user start test-s3@1.service test-s3@2.service

$ systemctl --user list-units --all test-s3*
 UNIT              LOAD   ACTIVE SUB     DESCRIPTION
test-s3@1.service loaded active running Test-S3 Service
test-s3@2.service loaded active running Test-S3 Service
test-s3.socket    loaded active running Test S3 Socket

$ systemctl --user list-sockets test-s3*
LISTEN    UNIT           ACTIVATES
[::]:8087 test-s3.socket test-s3@2.service, test-s3@1.service

$ ss -tlp
LISTEN 0 128  :::8087 :::*  users:(("nodejs",pid=...,fd=3),("nodejs",pid=...,fd=3),("systemd",pid=...,fd=...))

$ curl localhost:8087
Hello 2

$ curl localhost:8087
Hello 1

$ curl localhost:8087
Hello 1

$ curl localhost:8087
Hello 2

$ systemctl --user stop test-s3@1.service test-s3@2.service test-s3.socket
$ systemctl --user disable test-s3@.service test-s3.socket

Keywords

FAQs

Package last updated on 25 Mar 2024

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