Monitor Linux CPU temperature, frequency, power in a graphical way



S-tui is a free and open source terminal UI for monitoring your computer. s-tui allows to monitor CPU temperature, frequency, power and utilization in a graphical way from the terminal. It is written in Python and need root permission to use the s-tui. It is useful for:

ADVERTISEMENTS



Watch your CPU temperature/utilization/frequency/power See performance dips caused by thermal throttling No need to use X-server. Perfect for headless usage including Raspberry PI

Let us see how to install and use s-tui on a Linux based system.



Step 1 – Install pip

Type the following command to install pip – a package management for Python using apt command/apt-get command:

$ sudo apt install python-pip stress

Sample outputs:

Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: binutils build-essential cpp cpp- 5 dpkg-dev fakeroot g++ g++- 5 gcc gcc- 5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1- 0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc- 5 -dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libstdc++- 5 -dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev python2.7-minimal Suggested packages: binutils-doc cpp-doc gcc- 5 -locales debian-keyring g++-multilib g++- 5 -multilib gcc- 5 -doc libstdc++ 6 - 5 -dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc- 5 -multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++- 5 -doc make-doc python-doc python-tk python-setuptools-doc python2.7-doc binfmt-support The following NEW packages will be installed: binutils build-essential cpp cpp- 5 dpkg-dev fakeroot g++ g++- 5 gcc gcc- 5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1- 0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc- 5 -dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libstdc++- 5 -dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev python2.7-minimal 0 upgraded, 57 newly installed, 0 to remove and 0 not upgraded. Need to get 73.4 MB of archives. After this operation, 209 MB of additional disk space will be used. Do you want to continue? [ Y/n ] y Get: 1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.2 [ 338 kB ] .... .. ... Setting up libalgorithm-merge-perl ( 0.08 - 3 ) ... Setting up libexpat1-dev:amd64 ( 2.1.0-7ubuntu0.16.04.3 ) ... Setting up libfile-fcntllock-perl ( 0.22 - 3 ) ... Setting up libpython2.7:amd64 ( 2.7.12-1ubuntu0~16.04.2 ) ... Setting up libpython2.7-dev:amd64 ( 2.7.12-1ubuntu0~16.04.2 ) ... Setting up libpython-dev:amd64 ( 2.7.11- 1 ) ... Setting up libpython-all-dev:amd64 ( 2.7.11- 1 ) ... Setting up manpages-dev ( 4.04 - 2 ) ... Setting up python-all ( 2.7.11- 1 ) ... Setting up python2.7-dev ( 2.7.12-1ubuntu0~16.04.2 ) ... Setting up python-dev ( 2.7.11- 1 ) ... Setting up python-all-dev ( 2.7.11- 1 ) ... Setting up python-pip-whl ( 8.1.1-2ubuntu0.4 ) ... Setting up python-pip ( 8.1.1-2ubuntu0.4 ) ... Setting up python-pkg-resources ( 20.7.0- 1 ) ... Setting up python-setuptools ( 20.7.0- 1 ) ... Setting up python-wheel ( 0.29.0- 1 ) ... Processing triggers for libc-bin ( 2.23 -0ubuntu9 ) ... Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev python2.7-minimal Suggested packages: binutils-doc cpp-doc gcc-5-locales debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc python-tk python-setuptools-doc python2.7-doc binfmt-support The following NEW packages will be installed: binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev python2.7-minimal 0 upgraded, 57 newly installed, 0 to remove and 0 not upgraded. Need to get 73.4 MB of archives. After this operation, 209 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.2 [338 kB] .... .. ... Setting up libalgorithm-merge-perl (0.08-3) ... Setting up libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.3) ... Setting up libfile-fcntllock-perl (0.22-3) ... Setting up libpython2.7:amd64 (2.7.12-1ubuntu0~16.04.2) ... Setting up libpython2.7-dev:amd64 (2.7.12-1ubuntu0~16.04.2) ... Setting up libpython-dev:amd64 (2.7.11-1) ... Setting up libpython-all-dev:amd64 (2.7.11-1) ... Setting up manpages-dev (4.04-2) ... Setting up python-all (2.7.11-1) ... Setting up python2.7-dev (2.7.12-1ubuntu0~16.04.2) ... Setting up python-dev (2.7.11-1) ... Setting up python-all-dev (2.7.11-1) ... Setting up python-pip-whl (8.1.1-2ubuntu0.4) ... Setting up python-pip (8.1.1-2ubuntu0.4) ... Setting up python-pkg-resources (20.7.0-1) ... Setting up python-setuptools (20.7.0-1) ... Setting up python-wheel (0.29.0-1) ... Processing triggers for libc-bin (2.23-0ubuntu9) ...

Step 2 – Install s-tui

Type the following command to install it:

$ sudo pip install s-tui

Collecting s-tui Downloading s-tui-0.6.7.2.tar.gz Collecting urwid>=1.3.1 (from s-tui) Downloading urwid-1.3.1.tar.gz (588kB) 100% |████████████████████████████████| 593kB 558kB/s Collecting psutil>=5.2.0 (from s-tui) Downloading psutil-5.4.2.tar.gz (411kB) 100% |████████████████████████████████| 419kB 646kB/s Installing collected packages: urwid, psutil, s-tui Running setup.py install for urwid ... done Running setup.py install for psutil ... done Running setup.py install for s-tui ... done Successfully installed psutil-5.4.2 s-tui-0.6.7.2 urwid-1.3.1

Arch Linux users can type the following command to install it:

$ sudo yaourt -S s-tui

Step 3 – Use it

Simply type the following command:

$ sudo s-tui

Sample outputs:



Getting help

s-tui has many more option. Type the following command to see them:

$ s-tui --help

Sample outputs:

usage: s-tui [ -h ] [ -d ] [ -c ] [ -t ] [ -j ] [ -nm ] [ -v ] [ -ct CUSTOM_TEMP ] [ -cf CUSTOM_FAN ] TUI interface: The side bar houses the controls for the displayed grahps. At the bottom of the side bar, more information is presented in text form. * Use the arrow keys or 'hjkl' to navigate the side bar * Toggle between stressed and regular operation using the radio buttons in 'Modes'. * If you wish to alternate stress defaults, you can do it in 'Stress options' * Select a different temperature sensors from the 'Temp Sensors' menu * Change time between updates using the 'Refresh' field * Use the <Reset> button to reset graphs and statistics * Toggle displayed graphs by selecting the [ X ] check box * If a sensor is not available on your system, N/A is presented * If your system supports it, you can use the utf8 button to get a smoother graph * Press 'q' or the <quit> button to quit * Run `s-tui --help` to get this message and additional cli options optional arguments: -h, --help show this help message and exit -d, --debug Output debug log to _s-tui.log -c, --csv Save stats to csv file -t, --terminal Display a single line of stats without tui -j, --json Display a single line of stats in JSON format -nm, --no-mouse Disable Mouse for TTY systems -v, --version Display version -ct CUSTOM_TEMP, --custom_temp CUSTOM_TEMP Custom temperature sensors. The format is: <sensors>,<number> As it appears in 'sensors' e.g > sensors it8792-isa-0a60, temp1: +47.0C temp2: +35.0C temp3: +37.0C use: -ct it8792, 0 for temp 1 -cf CUSTOM_FAN, --custom_fan CUSTOM_FAN Similar to custom temp e.g >sensors thinkpad-isa-0000 Adapter: ISA adapter fan1: 1975 RPM use: -cf thinkpad, 0 for fan1 usage: s-tui [-h] [-d] [-c] [-t] [-j] [-nm] [-v] [-ct CUSTOM_TEMP] [-cf CUSTOM_FAN] TUI interface: The side bar houses the controls for the displayed grahps. At the bottom of the side bar, more information is presented in text form. * Use the arrow keys or 'hjkl' to navigate the side bar * Toggle between stressed and regular operation using the radio buttons in 'Modes'. * If you wish to alternate stress defaults, you can do it in 'Stress options' * Select a different temperature sensors from the 'Temp Sensors' menu * Change time between updates using the 'Refresh' field * Use the <Reset> button to reset graphs and statistics * Toggle displayed graphs by selecting the [X] check box * If a sensor is not available on your system, N/A is presented * If your system supports it, you can use the utf8 button to get a smoother graph * Press 'q' or the <quit> button to quit * Run `s-tui --help` to get this message and additional cli options optional arguments: -h, --help show this help message and exit -d, --debug Output debug log to _s-tui.log -c, --csv Save stats to csv file -t, --terminal Display a single line of stats without tui -j, --json Display a single line of stats in JSON format -nm, --no-mouse Disable Mouse for TTY systems -v, --version Display version -ct CUSTOM_TEMP, --custom_temp CUSTOM_TEMP Custom temperature sensors. The format is: <sensors>,<number> As it appears in 'sensors' e.g > sensors it8792-isa-0a60, temp1: +47.0C temp2: +35.0C temp3: +37.0C use: -ct it8792,0 for temp 1 -cf CUSTOM_FAN, --custom_fan CUSTOM_FAN Similar to custom temp e.g >sensors thinkpad-isa-0000 Adapter: ISA adapter fan1: 1975 RPM use: -cf thinkpad,0 for fan1

For more information see s-tui project home page.