Skip to content
/ pman Public

Process management tool for UNIX systems using gRPC

Notifications You must be signed in to change notification settings

matsune/pman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pman

Pman is a process management tool for starting/stopping, automatic restart, and status monitoring.
Pman intends to run on a UNIX-based OS, and currently it has been tested on Mac OSX and Ubuntu.
Pman is inspired by Supervisor in several ways.

Usage

Configuration file

Pman reads the configuration file (default: /etc/pman.conf) at startup.
The configuration file has 2 sections; a section that describes the settings of the daemon and a section that describes the setting of the program to be executed. Pman has echo command that shows default configurations.

$ sudo sh -c './bin/pman echo > /etc/pman.conf'
$ cat /etc/pman.conf
[pman]
pidfile=/tmp/pman.pid 	; pman daemon's pidfile
logfile=/tmp/pman.log 	; pman daemon's logfile
port=127.0.0.1:50010  	; gRPC server port
directory=/tmp        	; default is current dir

[program:sample]
command=/bin/ls               	; program command
stdout=/tmp/sample_stdout.log 	; program stdout logfile (default: /tmp/${program name}_stdout.log)
stderr=/tmp/sample_stderr.log 	; program stderr logfile (default: /tmp/${program name}_stderr.log)
autorestart=true              	; automatically restart if exited unexpectedly
autostart=true                	; start program on daemon's startup

Start server

$ pman
# specific conf file path
$ pman -c ./pman.conf

Run client

$ pman <command>

command:
  status <program>  	show status
  start <program>   	start program
  stop <program>    	stop program
  restart <program> 	stop and start program
  kill              	kill daemon process
  echo              	echo default conf

You can use "all" to operate all registered programs.

$ pman stop all
[sample] STOPPING
[sample2] STOPPING
[sample3] STOPPING

$ pman start all
[sample] RUNNING 	pid: 8978	uptime: 00:00:00
[sample2] RUNNING 	pid: 8979	uptime: 00:00:00
[sample3] RUNNING 	pid: 8980	uptime: 00:00:00

$ pman status
[sample] RUNNING 	pid: 8978	uptime: 00:00:02
[sample2] RUNNING 	pid: 8979	uptime: 00:00:02
[sample3] RUNNING 	pid: 8980	uptime: 00:00:02

gRPC

Pman server adopts gRPC as a protocol for IPC.
You can call pman's API from client program written in programming language supporting gRPC.
Please check pman.proto file.

About

Process management tool for UNIX systems using gRPC

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published