Beginner guide
By the end of this guide you will have opened SysVitals, read its header, visited all four tabs, found what is listening on your machine, and printed a plain-text snapshot.
What you need
sysvitals.pydownloaded and executable. See Install.- A terminal window at least 80 characters wide. Wider is better: at 120 columns the CPU bars fit four to a row.
Start SysVitals
In the folder that holds the script, run:
bash./sysvitals.pyThe screen fills and updates every 1.5 seconds. You start on the Processes tab.
Read the bars at the top. There is one numbered bar per CPU core (
0,1,2and so on) with its usage in percent. Below them, Mem is memory in use and Swp is swap in use. Bars are green below 60 %, yellow up to 85 % and red above that.Read the cyan line under the bars. From left to right it shows:
CPUand the total CPU use; then the CPU temperature, if your machine has a sensor SysVitals knowsTasks: running programs, thenthr(extra threads) andkthr(kernel threads), then how many arerunningright nowLoad: the load average over 1, 5 and 15 minutesUp: how long the machine has been on, as days and hours:minutes
Read the tab bar under it:
1:Processes,2:Network,3:Ports,4:Disks. The highlighted one is the tab you are on.Read the bottom line. It lists the keys that work on this tab, such as
q Quit Tab/1-4 Tabs ↑↓ Move / Filter.
Look at processes
Press ↓ a few times. The highlighted row moves down the process table.
Press m. The table is now sorted by memory use, biggest first. Press c to sort by CPU again.
Press / and type
python. The bottom line showsSearch: python, and the table shows only processes with "python" in their name or command line. You should see SysVitals itself. Press Enter to keep the filter.Switch tabs to clear the filter, or press / and then Esc.
See what is listening
Press 3 to open the Ports tab.
Read a row. It shows the protocol (
tcp,tcp6,udporudp6), the address, the port number, the service name if the port has a well-known one (such assshorhttp), the user, and the PID and program that opened it.Look for yellow rows. Yellow means the port listens on all network interfaces (
0.0.0.0or::), so other machines on the network may be able to reach it. Ports on127.0.0.1or::1are reachable only from your own machine.
If the PID/PROGRAM column shows -, the socket belongs to a program run by another user, and you need root to see which. Quit with q and run sudo ./sysvitals.py to see them all.
Check the other tabs
Press 2 for Network. Every open socket is listed; established connections come first, in green, and listening sockets last, in cyan.
Press 4 for Disks. Each drive is listed with its model, type, size and current read (
R) and write (W) speed, followed by its health. At the bottom, Filesystems shows how full each mounted drive is.Without root, an NVMe drive shows
SMART: permission denied (run with sudo for full SMART). That is expected. See Check drive health.Press Tab to go round the tabs in order, and q to quit.
Take a snapshot
SysVitals can print everything once as plain text instead of opening the full-screen view:
./sysvitals.py --dumpIt waits one second to measure CPU and disk activity, then prints sections headed --- Top processes by CPU ---, --- Network: ... ---, --- Listening ports ---, --- Disks --- and --- Mounts ---. You can save it to a file with ./sysvitals.py --dump > snapshot.txt, or run it on another machine over SSH.
What you learned
- 1 to 4 (or Tab) switch between Processes, Network, Ports and Disks.
- / filters the current tab; sort keys and kill work on Processes.
- Yellow rows on Ports are reachable from the network.
sudoshows full drive health and the owner of every socket.--dumpprints a text snapshot.