🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
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
Version published
Weekly downloads
175
-14.22%
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

systemd

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