kardianos/service

Run go programs as a service on major platforms.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 9 minutes ago
Added to GitGenius on September 14th, 2026
Created on January 6th, 2015
Open Issues & Pull Requests: 167 (+0)
GitHub issues: Enabled
Number of forks: 727
Total Stargazers: 4,841 (+0)
Total Subscribers: 105 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 75.9 days
Mean response time: 246.3 days
90th percentile: 808.1 days
Tracked items: 11

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 9
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,172 days
Stale 30+ days: 9
Stale 90+ days: 7

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

service is a Go library that enables programs to run as a service or daemon across major operating systems.

The library solves the problem of cross-platform service management by providing a unified API that abstracts away the substantial differences between Windows, Linux, and macOS service architectures. On Windows, services require non-trivial callback setup; on Linux, the tool supports systemd, Upstart, and SysV init systems; on macOS, it uses Launchd. Beyond installation and uninstallation, the library handles starting and stopping services and can detect whether a program is running interactively or under a service manager.

Developers building Go applications that need to run as background services on multiple platforms should consider this tool. It is particularly suited for applications that must work across Windows, Linux, and macOS without duplicating platform-specific service management code. The library's main value lies in normalizing the API surface across these fundamentally different service models rather than requiring separate implementations for each platform.

The project shows sparse recent activity with infrequent commits and minimal engagement on issues and pull requests. Documentation is present but limited, and the README acknowledges known limitations including that the Dependencies field is not implemented for Linux systems and Launchd, and that OS X user service interactive detection is not accurate.