Skip to content

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.py downloaded 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 ​

  1. In the folder that holds the script, run:

    bash
    ./sysvitals.py

    The screen fills and updates every 1.5 seconds. You start on the Processes tab.

  2. Read the bars at the top. There is one numbered bar per CPU core (0, 1, 2 and 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.

  3. Read the cyan line under the bars. From left to right it shows:

    • CPU and the total CPU use; then the CPU temperature, if your machine has a sensor SysVitals knows
    • Tasks: running programs, then thr (extra threads) and kthr (kernel threads), then how many are running right now
    • Load: the load average over 1, 5 and 15 minutes
    • Up: how long the machine has been on, as days and hours:minutes
  4. Read the tab bar under it: 1:Processes, 2:Network, 3:Ports, 4:Disks. The highlighted one is the tab you are on.

  5. 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 ​

  1. Press ↓ a few times. The highlighted row moves down the process table.

  2. Press m. The table is now sorted by memory use, biggest first. Press c to sort by CPU again.

  3. Press / and type python. The bottom line shows Search: 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.

  4. Switch tabs to clear the filter, or press / and then Esc.

See what is listening ​

  1. Press 3 to open the Ports tab.

  2. Read a row. It shows the protocol (tcp, tcp6, udp or udp6), the address, the port number, the service name if the port has a well-known one (such as ssh or http), the user, and the PID and program that opened it.

  3. Look for yellow rows. Yellow means the port listens on all network interfaces (0.0.0.0 or ::), so other machines on the network may be able to reach it. Ports on 127.0.0.1 or ::1 are 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 ​

  1. Press 2 for Network. Every open socket is listed; established connections come first, in green, and listening sockets last, in cyan.

  2. 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.

  3. 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:

bash
./sysvitals.py --dump

It 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.
  • sudo shows full drive health and the owner of every socket.
  • --dump prints a text snapshot.

Next steps ​