Skip to content

Reference ​

Every option, key and colour in SysVitals 1.0.0.

Command line ​

text
sysvitals [-h] [-i INTERVAL] [--dump] [--version]
OptionDefaultWhat it does
-i, --interval INTERVAL1.5How often the screen refreshes, in seconds. Fractions are allowed, for example -i 0.5.
--dumpoffPrints one plain-text snapshot of all four views and exits. No full-screen view.
--versionPrints sysvitals 1.0.0 and exits.
-h, --helpPrints the usage text and exits.

You start it as ./sysvitals.py (or sysvitals if you copied it onto your PATH). Run with sudo to read NVMe health data and to see the owning program of every socket.

Without --dump, SysVitals must run in a terminal. If its output is redirected to a file or pipe, it stops with sysvitals: not a terminal (use --dump for text output).

There is no configuration file, and SysVitals saves no settings.

Keys on every tab ​

KeyAction
1 2 3 4Go to Processes, Network, Ports or Disks.
F1 to F4Same as 1 to 4.
TabNext tab.
↑ ↓Move the selection one row (on Disks, scroll).
PgUp PgDnMove 20 rows.
Home EndGo to the first or last row.
/Filter the current tab (not on Disks).
q or QQuit. Ctrl + C also quits.

Switching tabs clears the filter and any status message.

Keys while filtering ​

KeyAction
Any printable characterAdds it to the filter. The table updates as you type.
BackspaceDeletes the last character.
EnterKeeps the filter and returns to normal keys.
EscClears the filter and returns to normal keys.

On Processes the filter matches the process name, the command line, or an exact PID. On Network and Ports it matches any text in the row. Case is ignored.

Keys on the Processes tab ​

KeyAction
cSort by CPU% (highest first).
mSort by MEM% (highest first).
tSort by TIME (highest first).
pSort by PID (lowest first).
nSort by name (A to Z).
KShow or hide kernel threads. Hidden at start.
x or F9Send a signal to the selected process.

Pressing the current sort key again reverses the order.

After x or F9, the bottom line asks which signal to send:

KeyAction
tSend SIGTERM (ask the process to quit).
kSend SIGKILL (end it immediately).
Esc or any other keyCancel.

Colours ​

WhereColourMeaning
CPU, Mem and Swp barsGreen, yellow, redBelow 60 %, below 85 %, 85 % and above.
Process rowsYellowThe process uses more than 50 % CPU.
Network rowsGreenESTABLISHED connection.
Network rowsCyanLISTEN socket.
Ports rowsYellowListens on all interfaces (0.0.0.0 or ::).
Drive life barGreen, yellow, redAbove 30 %, above 10 %, 10 % or less.
Drive temperatureGreen, yellow, redBelow 55 °C, below 70 °C, 70 °C and above.
Filesystem barsGreen, yellow, redBelow 70 %, below 90 %, 90 % and above.

Snapshot sections ​

--dump waits one second to measure activity, then prints:

SectionContents
=== SysVitals 1.0.0 snapshot ===Total CPU, core count, load average, CPU temperature (if known), memory and swap.
--- Top processes by CPU ---The 10 busiest processes: PID, user, CPU%, MEM%, resident memory, name.
--- Network: N sockets, M established ---Up to 10 established connections with their owner.
--- Listening ports ---Every listening port with its service name and owner.
--- Disks ---Each drive with speed, temperature and SMART summary.
--- Mounts ---Each filesystem with used and total size and percentage.

Where the data comes from ​

DataSource
CPU, processes, memory/proc/stat, /proc/<pid>/, /proc/meminfo
CPU temperature/sys/class/hwmon, sensors named k10temp, coretemp, zenpower or cpu_thermal
Sockets and ports/proc/net/tcp, tcp6, udp, udp6, matched to processes through /proc/<pid>/fd
Service namesYour system's services database (/etc/services)
Drive model, serial, firmware/sys/block
Drive throughput/proc/diskstats
Drive temperature/sys/class/hwmon (nvme and drivetemp sensors)
NVMe healthThe drive's SMART/health log, read with the kernel's NVMe admin command (root only)
SATA healthsmartctl -H -A from smartmontools
Filesystems/proc/mounts

Next steps ​