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

github.com/codemodify/systemkit-service-spec

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/codemodify/systemkit-service-spec

  • v1.9.3
  • Source
  • Go
  • Socket score

Version published
Created
Source

Service

What

After reading a ton of material on init frameworks and service management for different OSes; Going through mental debate of smartness of one versus another and their historical backlog and tech debt, as well as developer and user friendliness of the material provided which in itself can drive away companies and engineering force to provide support for one or another platform - THE TAKE AWAY IS - In the end what matters is to have an OS efficient and developer friendly mechanics to manipulate a service.

This repo proposes to create a portable SERVICE definition that can be used by developers and businesses to implement their products on a range of platforms without worrying about misunderstanding the genius on each of those.

Reference Implementations

  
Go implementationhttps://github.com/codemodify/systemkit-service
Command line toolhttps://github.com/codemodify/systemkit-service-cli
Samples & Testshttps://github.com/codemodify/systemkit-service-tests
Init Frameworkshttps://github.com/codemodify/systemkit-service-encoders-rc_d
 https://github.com/codemodify/systemkit-service-encoders-launchd
 https://github.com/codemodify/systemkit-service-encoders-systemd
 https://github.com/codemodify/systemkit-service-encoders-systemv
 https://github.com/codemodify/systemkit-service-encoders-upstart

Where

  • Use Case (A) - code
    • NewServiceFromSERVICE()
      • creates and controls a service based on SERVICE portable description
    • NewServiceFromName()
      • finds and controls an existing service based on its name; previously created by our app or something else
    • NewServiceFromPlatformTemplate()
      • create a service from a platform dependent template
      • template is already a service definition as it is defined by the one of init frameworks
  • Use Case (B) - scripting
    • manipulate a service based on a SERVICE file
      • systemkit-service-spec-cli create/delete/start/stop/info -service SERVICE-FILE
    • manipulate a service based on commands and flags
      • systemkit-service-spec-cli create/delete/start/stop/info -name test-service -executable vim
    • compile your own service manipulator binary based on the systemkit-service-spec-cli source code
  • Use Case (C) - convert
    • used as an ETL mechanism, used by scripting or cloud based services
    • convert SERVICE file to a platform dependent format
    • convert platform dependent format to SERVICE format
    • convert platform dependent format to a different platform dependent format, by going through SERVICE format

SERVICE format

{
	"name": "test-service",
	"description": "Test Service",
	"documentation": "http://test-service.com",
	"executable": "/bin/sleep",
	"args": [
		"40"
	],
	"workingDirectory": "/tmp",
	"environment": {
		"API_URL": "https://api.test-service.com"
	},
	"dependsOn": [
		"network"
	],
	"dependsOnOverrides": {
		"init_rc.d": {
			"remove": [
				"*"
			],
			"add": [
				"bumblebee",
				"mumbled"
			]
		},
		"init_systemd": {
			"add": [
				"printer"
			]
		},
		"os_freebsd": {
			"add": [
				"linux"
			]
		},
		"os_linux": {
			"add": [
				"bluetooth"
			]
		}
	},
	"start": {
		"atBoot": true,
		"restart": true,
		"restartTimeout": 10
	},
	"logging": {
		"stdout": {
			"disabled": false,
			"useDefault": false,
			"value": "/var/log/test-service-stdout.log"
		},
		"stderr": {
			"disabled": false,
			"useDefault": false,
			"value": "/var/log/test-service-stderr.log"
		}
	},
	"credentials": {
		"user": "user",
		"group": "group"
	}
}

References & Credits

Any missing credits are the author's unconscious error

FAQs

Package last updated on 24 Jan 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