lecram/isv
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
isv - interactive service supervision
=====================================
This is a terminal user interface (TUI) for Runit service control.
It should also be compatible with daemontools, but I haven't tested that.
It's intended to be a friendlier version of Runit's sv and daemontools' svc
programs.
Screenshot
----------
$ isv
name active main log uptime
cgit no 21637 21636 12 m
<cron yes 332 329 3 d>
rproxy yes --- 330 ---
On the screen above, we can see that:
- there are 3 services being currently supervised;
- the pid of underlying processes are shown in columns "main" & "log";
- service cgit is disabled (file "down" is present), but it's up;
- service cron has been up for 3 days;
- service rproxy is down;
- service cron is selected to receive control commands.
Interaction
-----------
KEY ACTION
--- ------
q Quit isv
j/k Move selection cursor down/up
SPACE Enable/disable selected service (del/add "down" file)
1/2 Send USR1/USR2 signal to selected service
<UPPER> Send command to selected service (e.g. 'U' -> 'up')
That is, to control a service, we first move the cursor (<>) using j/k to
select it, then we press SHIFT+x, where x is the first character of one of the
commands supported by sv/svc:
up, down, once, pause, cont, hup, alarm, interrupt, quit, term, kill
Installation
------------
This is just a single C source file with no external dependencies.
Of course we need Runit/daemontools in order to actually use it.
Do something like this to install:
$ cc -o isv isv.c
$ sudo mv isv /usr/bin/
Services Directory
------------------
The base directory for service location can be specified in several ways:
- if an argument is passed to the isv(1) command, it's the base dir;
- otherwise, if the SVDIR environment variable is set, it's the base dir;
- otherwise, the base directory is /service/.
Note: make sure the user running isv(1) has access to service directories.
Copying
-------
All of the source code and documentation for isv is released into the public
domain and provided without warranty of any kind.