PERP
Its a process supervisor , controller, manager in Linux.
The perp package provides a set of daemons and utilities to reliably start, monitor, log, and control a collection of persistent processes
Installation:
It can be build using make, or debain package.
https://github.com/jdavisp3/perp
cd perp
debuild -b -uc -us
This will generate the debian package for perp
Install it as,
dpkg -i <perp>
How to configure:
At very first time, perp-setup comamnd needs to run to initialize the perp.
perp-setup /etc/perp /var/run/perp
Thats all.
Process Inclusion
Now, we have to create a configuration folder for each process which needs to be started/monitored by perp.
Refer this link, for example
https://github.com/jdavisp3/perp/tree/master/examples
Note:
For example to control agpd service,
Make sure , the files(/etc/perp/agpd/rc*) should have execute permission
Make sure, the folder (/etc/perp/agpd) should have "+t" flags(chmod +t /etc/perp/apgd) set(for activation)
Run the perp:
perpd
Management/User commands:
perpls - List the perp monitored process and status
root@f4e259709556:/etc/perp# perpls
[+ +++ +++] consul uptime: 26191s/26191s pids: 7/6
[+ +++ +++] rabbitmq uptime: 25971s/26191s pids: 16431/8
root@f4e259709556:/etc/perp#
perpstat : stats disable
root@f4e259709556:/etc/perp# perpstat rabbitmq
rabbitmq: activated 26269 seconds
main: up 26049 seconds (pid 16431)
log: up 26269 seconds (pid 8)
root@f4e259709556:/etc/perp#
perpctl: Stop/start the service
To deactivate/stop the service :
perpctl X <service name>
To activate/start the service
perpctl A <service name>
root@f4e259709556:/etc/perp# perpls
[+ +++ +++] consul uptime: 26381s/26381s pids: 7/6
[+ +++ +++] rabbitmq uptime: 26161s/26381s pids: 16431/8
root@f4e259709556:/etc/perp# perpctl X rabbitmq
rabbitmq: set for deactivation
rescan triggered for deactivation set on 1 service
root@f4e259709556:/etc/perp# perpls
[+ +++ +++] consul uptime: 26389s/26389s pids: 7/6
[- --- ---] rabbitmq (service not activated)
root@f4e259709556:/etc/perp# perpctl A rabbitmq
rabbitmq: set for activation
rescan triggered for activation set on 1 service
root@f4e259709556:/etc/perp# perpls
[+ +++ +++] consul uptime: 26399s/26399s pids: 7/6
[+ +++ +++] rabbitmq uptime: 1s/2s pids: 30736/30486
root@f4e259709556:/etc/perp#