29 lines
		
	
	
		
			846 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			846 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # serviceman
 | ||
|  | 
 | ||
|  | A cross-platform service manager | ||
|  | 
 | ||
|  | ```bash | ||
|  | serviceman add --name "my-project" node ./serve.js --port 3000 | ||
|  | serviceman stop my-project | ||
|  | serviceman start my-project | ||
|  | ``` | ||
|  | 
 | ||
|  | Works with launchd (Mac), systemd (Linux), or standalone (Windows). | ||
|  | 
 | ||
|  | ## Meta Package
 | ||
|  | 
 | ||
|  | This is a meta-package to fetch and install the correction version of | ||
|  | [go-serviceman](https://git.rootprojects.org/root/serviceman) | ||
|  | for your architecture and platform. | ||
|  | 
 | ||
|  | ```bash | ||
|  | npm install serviceman | ||
|  | ``` | ||
|  | 
 | ||
|  | ## How does it work?
 | ||
|  | 
 | ||
|  | 1. Resolves executable from PATH, or hashbang (ex: `#!/usr/bin/env node`) | ||
|  | 2. Resolves file and directory paths to absolute paths (ex: `/Users/me/my-project/serve.js`) | ||
|  | 3. Creates a template `.plist` (Mac), `.service` (Linux), or `.json` (Windows) file | ||
|  | 4. Calls `launchd` (Mac), `systemd` (Linux), or `serviceman-runner` (Windows) to enable/start/stop/etc |