Terminal-based CPU stress and monitoring utility

Overview

The Stress Terminal UI: s-tui

Build Status PyPI version Downloads

Stress-Terminal UI, s-tui, monitors CPU temperature, frequency, power and utilization in a graphical way from the terminal.

Screenshot

Table of Contents

What it does

  • Monitoring your CPU temperature/utilization/frequency/power
  • Shows performance dips caused by thermal throttling
  • Requires no X-server
  • Built in options for stressing the CPU (stress/stress-ng/FIRESTARTER)

Usage

s-tui

Simple installation

pip (x86 + ARM)

The most up to date version of s-tui is available with pip.

Install with:

pip install s-tui --user

(This usuall creates an executable in ~/.local/bin/ dir. Make sure it is in your PATH)

To install as root

sudo pip install s-tui

You might need to install python-dev first

Installation in virtualenv with pipsi:

pipsi install s-tui

More installation methods

Ubuntu (18.10 and newer)

sudo apt install s-tui

Ubuntu (18.04, 16.04)

A PPA is available but is not up to date

sudo add-apt-repository ppa:amanusk/python-s-tui
sudo apt-get update
sudo apt-get install python3-s-tui

Arch Linux, Manjaro

s-tui is in the Arch repository:

sudo pacman -S s-tui

s-tui-git follows the master branch, maintained by @MauroMombelli

Install it with: yay -S s-tui-git

OpenSUSE

sudo zypper install s-tui

Options

TUI interface:

The side bar houses the controls for the displayed graphs.
At the bottom, all sensors reading are 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 graphs to display in the <Graphs> menu
* Select summaries to display in the <Summaries> menu
* Use the <Reset> button to reset graphs and statistics
* If your system supports it, you can use the UTF-8 button to get a smoother graph
* Save your current configuration with the <Save Settings> button
* 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
  --debug-file DEBUG_FILE
                        Use a custom debug file. Default: _s-tui.log
  -dr, --debug_run      Run for 5 seconds and quit
  -c, --csv             Save stats to csv file
  --csv-file CSV_FILE   Use a custom CSV file. Default: s-tui_log_<TIME>.csv
  -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
  -tt T_THRESH, --t_thresh T_THRESH
                        High Temperature threshold. Default: 80

Dependencies

s-tui is a great for monitoring. If you would like to stress your system, install stress. Stress options will then show up in s-tui (optional)

sudo apt-get install stress

Configuration

s-tui is a self-contained application which can run out-of-the-box and doesn't need config files to drive its core features. However, additional features like running scripts when a certain threshold has been exceeded (e.g. CPU temperature) does necessitate creating a config directory. This directory will be made in ~/.config/s-tui by default.

Saving a configuration

Selecting <Save Settings> will save the current configuration to ~/.config/s-tui/s-tui.conf. If you would like to restore defaults, simply remove the file.

Adding threshold scripts

s-tui gives you the ability to run arbitrary shell scripts when a certain threshold is surpassed, like your CPU temperature. You can define this custom behaviour by adding a shell file to the directory ~/.config/s-tui/hooks.d with one of the following names, depending on what threshold you're interesting in reacting to:

  • tempsource.sh: triggered when the CPU temperature threshold is exceeded

If s-tui finds a script in the hooks directory with the name of a source it supports, it will run that script every 30 seconds as long as the current value of the source remains above the threshold.

Note that at the moment only CPU temperature threshold hooks are supported.

Run from source code

Start by cloning the repository

git clone https://github.com/amanusk/s-tui.git
cd s-tui

Install required dependencies as [root] or as (local user)

[sudo] pip install urwid (--user)
[sudo] pip install psutil (--user)

Install stress (optional)

sudo apt-get install stress

Run the .py file

python -m s_tui.s_tui

OPTIONAL integration of FIRESTARTER (via submodule, does not work on all systems)

FIRESTARTER is a great tool to stress your system to the extreme. If you would like, you can integrate FIRESTARTER submodule into s-tui.

To build FIRESTARTER:

git submodule init
git submodule update
cd ./FIRESTARTER
./code-generator.py
make

Once you have completed these steps, you can either:

  • Install FIRESTARTER to make it accessible to s-tui, e.g make a soft-link to FIRESTARTER in /usr/local/bin.
  • Run s-tui from the main project directory with python -m s_tui.s_tui
    An option to run FIRESTARTER will then be available in s-tui

Compatibility

s-tui uses psutil to probe hardware information. If your hardware is not supported, you might not see all the information.

s-tui uses urwid as a graphical engine. urwid only works with UNIX-like systems

  • Power read is supported on Intel Core CPUs of the second generation and newer (Sandy Bridge) and on AMD Family 17h CPUs through the amd_energy driver.
  • s-tui tested to run on Raspberry-Pi 4,3,2,1

FAQ

Q: How is this different from htop?
A: s-tui is not a processes monitor like htop. The purpose is to monitor your CPU statistics and have an option to test the system under heavy load. (Think AIDA64 stress test, not task manager).

Q: I am using the TTY with no X server and s-tui crashes on start
A: By default, s-tui is handles mouse inputs. This causes some systems to crash. Try running s-tui --no-mouse

Q: I am not seeing all the stats in the sidebar.
A: The sidebar is scrollable, you can scroll down with DOWN or j or scroll to the bottom with PG-DN or G. You might consider also decreasing the size of the font that you use in your terminal.:)

Contributing

New issues and Pull Requests are welcome :)

If you notice a bug, please report it as a new issue, using the provided template.

To open a Pull Request, please see CONTRIBUTING for more information.

Tip

If you like this work, please star in on GitHub.

BTC: 1PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3
ETH: 0xc169699A825066f2F07E0b29C4082094b32A3F3e

Issues
  • "IOError: [Errno 61] No data available" on Ubuntu 17.04

    On my Ubuntu 17.04 (a Celeron laptop), I get a Traceback, with IOError: [Errno 61] No data available. This happens for the pip and the github version. A --help works.

    Any help / tips?

    [email protected]:~$ sudo s-tui 
    Traceback (most recent call last):
      File "/usr/local/bin/s-tui", line 11, in <module>
        load_entry_point('s-tui==0.5.0', 'console_scripts', 's-tui')()
      File "/usr/local/lib/python2.7/dist-packages/s_tui/s_tui.py", line 767, in main
        graph_controller = GraphController(args)
      File "/usr/local/lib/python2.7/dist-packages/s_tui/s_tui.py", line 617, in __init__
        self.data = GraphData(is_admin=is_admin)
      File "/usr/local/lib/python2.7/dist-packages/s_tui/GraphData.py", line 60, in __init__
        self.rapl_power_reader = RaplPower()
      File "/usr/local/lib/python2.7/dist-packages/s_tui/RaplPower.py", line 24, in __init__
        self.max_power = self.read_max_power_file() / self.MICRO_JAUL_IN_JAUL
      File "/usr/local/lib/python2.7/dist-packages/s_tui/RaplPower.py", line 35, in read_max_power_file
        return float(self.read_measurement(self.intel_rapl_package_max_energy_file))
      File "/usr/local/lib/python2.7/dist-packages/s_tui/RaplPower.py", line 28, in read_measurement
        value = file.read()
    IOError: [Errno 61] No data available
    [email protected]:~$ 
    

    and

    [email protected]:~/git/s-tui$ sudo s_tui/s_tui.py 
    Traceback (most recent call last):
      File "s_tui/s_tui.py", line 791, in <module>
        main() 
      File "s_tui/s_tui.py", line 767, in main
        graph_controller = GraphController(args)
      File "s_tui/s_tui.py", line 617, in __init__
        self.data = GraphData(is_admin=is_admin)
      File "/home/sander/git/s-tui/s_tui/GraphData.py", line 60, in __init__
        self.rapl_power_reader = RaplPower()
      File "/home/sander/git/s-tui/s_tui/RaplPower.py", line 24, in __init__
        self.max_power = self.read_max_power_file() / self.MICRO_JAUL_IN_JAUL
      File "/home/sander/git/s-tui/s_tui/RaplPower.py", line 35, in read_max_power_file
        return float(self.read_measurement(self.intel_rapl_package_max_energy_file))
      File "/home/sander/git/s-tui/s_tui/RaplPower.py", line 28, in read_measurement
        value = file.read()
    IOError: [Errno 61] No data available
    
    

    and

    [email protected]:~/git/s-tui$ sudo s_tui/s_tui.py --help
    usage: s_tui.py [-h] [-d] [-c] [-t] [-j] [-v]
    
    ********s-tui manual********
    Usage in graphical mode:
    * Toggle between stressed and regular operation using the radio buttons.
    * If you wish to alternate stress defaults, you can do it in 'stress options
    * If your system supports it, you can use the utf8 button to get a smoother graph
    * Reset buttons resets the graph and the max statistics
    
    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
      -v, --version   Display version
    
    
    

    and

    [email protected]:~/git/s-tui$ sudo s_tui/s_tui.py --terminal
    Traceback (most recent call last):
      File "s_tui/s_tui.py", line 791, in <module>
        main() 
      File "s_tui/s_tui.py", line 767, in main
        graph_controller = GraphController(args)
      File "s_tui/s_tui.py", line 617, in __init__
        self.data = GraphData(is_admin=is_admin)
      File "/home/sander/git/s-tui/s_tui/GraphData.py", line 60, in __init__
        self.rapl_power_reader = RaplPower()
      File "/home/sander/git/s-tui/s_tui/RaplPower.py", line 24, in __init__
        self.max_power = self.read_max_power_file() / self.MICRO_JAUL_IN_JAUL
      File "/home/sander/git/s-tui/s_tui/RaplPower.py", line 35, in read_max_power_file
        return float(self.read_measurement(self.intel_rapl_package_max_energy_file))
      File "/home/sander/git/s-tui/s_tui/RaplPower.py", line 28, in read_measurement
        value = file.read()
    IOError: [Errno 61] No data available
    [email protected]:~/git/s-tui$ 
    
    opened by sanderjo 29
  • Crashes upon launch on a virtual machine [`psutil.cpu_freq()` returns `None`]

    Crashes upon launch on a virtual machine [`psutil.cpu_freq()` returns `None`]

    Step 1: Describe your environment

    • System: Intel Xeon E5-2676 v3 @ 2.4GHz on an AWS EC2 virtual machine
    • OS version: Ubuntu 20.04 x86_64 Kernel 5.4.0-1015-aws
    • s-tui version: 1.0.0-1
    • psutil version: 5.5.1
    • Installation method: apt install s-tui from Ubuntu 20.04 repo

    Step 2: Describe the problem:

    The program crashes upon launch.

    Observed Results:

    The problem seems to be that psutil.cpu_freq() returns None on a VM.

    $ s-tui
    Traceback (most recent call last):
      File "/usr/bin/s-tui", line 11, in <module>
        load_entry_point('s-tui==1.0.0b3', 'console_scripts', 's-tui')()
      File "/usr/lib/python3/dist-packages/s_tui/s_tui.py", line 881, in main
        graph_controller = GraphController(args)
      File "/usr/lib/python3/dist-packages/s_tui/s_tui.py", line 698, in __init__
        possible_sources = self._load_config(args.t_thresh)
      File "/usr/lib/python3/dist-packages/s_tui/s_tui.py", line 631, in _load_config
        FreqSource(),
      File "/usr/lib/python3/dist-packages/s_tui/sources/freq_source.py", line 49, in __init__
        self.top_freq = psutil.cpu_freq().max
    AttributeError: 'NoneType' object has no attribute 'max'
    

    Debug Results, output of s-tui -d created in a file _s-tui.log:

    2020-06-18 20:14:51,711 [_load_config()] [DEBUG]  Config file not found
    2020-06-18 20:14:51,711 [_load_config()] [DEBUG]  No refresh rate configed
    2020-06-18 20:14:51,711 [_load_config()] [DEBUG]  No user config for utf8
    2020-06-18 20:14:51,711 [_load_config()] [DEBUG]  No user config for temp threshold
    2020-06-18 20:15:59,930 [_load_config()] [DEBUG]  Config file not found
    2020-06-18 20:15:59,930 [_load_config()] [DEBUG]  No refresh rate configed
    2020-06-18 20:15:59,930 [_load_config()] [DEBUG]  No user config for utf8
    2020-06-18 20:15:59,930 [_load_config()] [DEBUG]  No user config for temp threshold
    2020-06-18 20:16:15,978 [_load_config()] [DEBUG]  Config file not found
    2020-06-18 20:16:15,978 [_load_config()] [DEBUG]  No refresh rate configed
    2020-06-18 20:16:15,978 [_load_config()] [DEBUG]  No user config for utf8
    2020-06-18 20:16:15,979 [_load_config()] [DEBUG]  No user config for temp threshold
    

    Step 3: Reproduce the problem:

    $ ipython3 --pdb $(which s-tui)
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    /usr/bin/s-tui in <module>
          9     sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
         10     sys.exit(
    ---> 11         load_entry_point('s-tui==1.0.0b3', 'console_scripts', 's-tui')()
         12     )
    
    /usr/lib/python3/dist-packages/s_tui/s_tui.py in main()
        879 
        880     global graph_controller
    --> 881     graph_controller = GraphController(args)
        882     graph_controller.main()
        883 
    
    /usr/lib/python3/dist-packages/s_tui/s_tui.py in __init__(self, args)
        696         self.temp_thresh = None
        697 
    --> 698         possible_sources = self._load_config(args.t_thresh)
        699 
        700         # Needed for use in view
    
    /usr/lib/python3/dist-packages/s_tui/s_tui.py in _load_config(self, t_thresh)
        629         # This should be the only place where sources are configured
        630         possible_sources = [TempSource(self.temp_thresh),
    --> 631                             FreqSource(),
        632                             UtilSource(),
        633                             RaplPowerSource(),
    
    /usr/lib/python3/dist-packages/s_tui/sources/freq_source.py in __init__(self)
         47             self.last_measurement.append(0)
         48 
    ---> 49         self.top_freq = psutil.cpu_freq().max
         50         self.max_freq = self.top_freq
         51 
    
    AttributeError: 'NoneType' object has no attribute 'max'
    > /usr/lib/python3/dist-packages/s_tui/sources/freq_source.py(49)__init__()
         47             self.last_measurement.append(0)
         48 
    ---> 49         self.top_freq = psutil.cpu_freq().max
         50         self.max_freq = self.top_freq
         51 
    
    ipdb> print(psutil.cpu_freq())   
    None
    ipdb>  
    
    
    opened by akhan3 23
  • Fan speed, needs support for more fans

    Fan speed, needs support for more fans

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Intel
    • OS version: xubuntu 18.04
    • s-tui version: 0.7.4
    • Installation method(pip/PPA/source code): pip

    Step 2: Describe the problem:

    Observed Results:

    Only shows one fan speed

    Step 3: Reproduce the problem:

    Steps to reproduce:

    Have more than one fan rpm input

    ~$ sensors|grep RPM
    Chassis Fan 1 Speed:       0 RPM  (min =    0 RPM)
    CPU Fan 1 Speed:         383 RPM  (min =    0 RPM)
    Chassis Fan 3 Speed:     415 RPM  (min =    0 RPM)
    Chassis Fan 4 Speed:     457 RPM  (min =    0 RPM)
    Power Fan Speed:           0 RPM  (min =    0 RPM)
    CPU Fan 2 Speed:         451 RPM
    

    At the very lease it would be nice to select a fan to monitor instead of getting the 1st fan detected

    feature request 
    opened by GM-Script-Writer-62850 17
  • No such file or directory for file '/sys/class/hwmon/hwmon0/temp1_input'

    No such file or directory for file '/sys/class/hwmon/hwmon0/temp1_input'

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Intel
    • OS version: Fedora 31
    • s-tui version: 0.8.3
    • Installation method(pip/PPA/source code): pip

    Step 2: Describe the problem:

    Observed Results:

    • What happened? (Traceback of a crash/Image/description):

    Those get spammed onto the console, disrupting the graphs shown:

    /usr/lib64/python3.7/site-packages/psutil/_pslinux.py:1222: RuntimeWarning: ignoring FileNotFoundError(2, 'No such file or directory') for file '/sys/class/hwmon/hwmon0/temp1_input'
      RuntimeWarning)
    

    Debug Results, output of s-tui -d created in a file _s-tui.log:

    2019-10-05 12:56:57,166 [main()] [INFO ]  Started without root permissions
    2019-10-05 12:56:57,167 [__init__()] [DEBUG]  Config file not found
    2019-10-05 12:56:57,167 [__init__()] [DEBUG]  No refresh rate configed
    2019-10-05 12:56:57,167 [__init__()] [DEBUG]  No user config for utf8
    2019-10-05 12:56:57,167 [__init__()] [DEBUG]  No user config for temp sensor
    2019-10-05 12:56:57,167 [__init__()] [DEBUG]  No user config for temp threshold
    2019-10-05 12:56:57,169 [__init__()] [DEBUG]  stress-ng is not installed
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Package id 0
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Core 0
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Core 1
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Core 2
    2019-10-05 12:56:57,175 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,176 [__init__()] [DEBUG]  Core 3
    2019-10-05 12:56:57,176 [__init__()] [DEBUG]  Sensor Label
    2019-10-05 12:56:57,176 [__init__()] [DEBUG]  
    2019-10-05 12:56:57,176 [__init__()] [INFO ]  num cpus 8
    2019-10-05 12:56:57,278 [update()] [INFO ]  Utilization recorded 10.3
    2019-10-05 12:56:57,279 [__init__()] [DEBUG]  arg temp  None
    2019-10-05 12:56:57,279 [init_update()] [DEBUG]  custom temp is None
    2019-10-05 12:56:57,289 [init_update()] [DEBUG]  Temperature sensor is set to coretemp
    2019-10-05 12:56:57,300 [set_threshold()] [DEBUG]  Temperature threshold set to 100.0
    2019-10-05 12:56:57,306 [__init__()] [DEBUG]  Update is updated to <function TemperatureSource.init_update.<locals>.update at 0x7f3d23bedb90>
    2019-10-05 12:56:57,307 [get_power_usage()] [INFO ]  current 48337476353.0 last 48337472874.0
    2019-10-05 12:56:57,307 [get_power_usage()] [INFO ]  Joule_Used 0.003479 seconds_passed 0.00022363662719726562
    2019-10-05 12:56:57,307 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:56:57,307 [get_power_usage()] [INFO ]  Max power updated 16
    2019-10-05 12:56:57,309 [update()] [DEBUG]  Fan Speend Not Available
    2019-10-05 12:56:57,309 [update()] [INFO ]  Fan speed recorded0.0
    2019-10-05 12:56:57,320 [on_unicode_checkbox()] [DEBUG]  unicode State is False
    2019-10-05 12:56:57,323 [update()] [INFO ]  Utilization recorded 27.8
    2019-10-05 12:56:57,326 [get_power_usage()] [INFO ]  current 48337620090.0 last 48337476353.0
    2019-10-05 12:56:57,326 [get_power_usage()] [INFO ]  Joule_Used 0.143737 seconds_passed 0.01954817771911621
    2019-10-05 12:56:57,326 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:56:57,326 [update_displayed_graph_data()] [INFO ]  Reading 1071
    2019-10-05 12:56:57,327 [update_displayed_graph_data()] [INFO ]  Reading 27.8
    2019-10-05 12:56:57,327 [update_displayed_graph_data()] [INFO ]  Reading 63.0
    2019-10-05 12:56:57,327 [update_displayed_graph_data()] [INFO ]  Reading 7.352961593931042
    2019-10-05 12:56:57,329 [update()] [INFO ]  Utilization recorded 0.0
    2019-10-05 12:56:57,332 [get_power_usage()] [INFO ]  current 48337678684.0 last 48337620090.0
    2019-10-05 12:56:57,332 [get_power_usage()] [INFO ]  Joule_Used 0.058594 seconds_passed 0.0055599212646484375
    2019-10-05 12:56:57,332 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:56:57,332 [update_displayed_graph_data()] [INFO ]  Reading 2822
    2019-10-05 12:56:57,332 [update_displayed_graph_data()] [INFO ]  Reading 0.0
    2019-10-05 12:56:57,332 [update_displayed_graph_data()] [INFO ]  Reading 63.0
    2019-10-05 12:56:57,333 [update_displayed_graph_data()] [INFO ]  Reading 10.53863844665523
    2019-10-05 12:56:59,434 [update()] [INFO ]  Utilization recorded 13.4
    2019-10-05 12:56:59,448 [get_power_usage()] [INFO ]  current 48341564538.0 last 48337678684.0
    2019-10-05 12:56:59,449 [get_power_usage()] [INFO ]  Joule_Used 3.885854 seconds_passed 2.1161811351776123
    2019-10-05 12:56:59,449 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:56:59,449 [update_displayed_graph_data()] [INFO ]  Reading 799
    2019-10-05 12:56:59,450 [update_displayed_graph_data()] [INFO ]  Reading 13.4
    2019-10-05 12:56:59,452 [update_displayed_graph_data()] [INFO ]  Reading 49.0
    2019-10-05 12:56:59,453 [update_displayed_graph_data()] [INFO ]  Reading 1.8362577453341953
    2019-10-05 12:57:01,556 [update()] [INFO ]  Utilization recorded 17.5
    2019-10-05 12:57:01,571 [get_power_usage()] [INFO ]  current 48347694955.0 last 48341564538.0
    2019-10-05 12:57:01,572 [get_power_usage()] [INFO ]  Joule_Used 6.130417 seconds_passed 2.123067617416382
    2019-10-05 12:57:01,572 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:57:01,572 [update_displayed_graph_data()] [INFO ]  Reading 1464
    2019-10-05 12:57:01,573 [update_displayed_graph_data()] [INFO ]  Reading 17.5
    2019-10-05 12:57:01,574 [update_displayed_graph_data()] [INFO ]  Reading 49.0
    2019-10-05 12:57:01,575 [update_displayed_graph_data()] [INFO ]  Reading 2.8875279099495987
    2019-10-05 12:57:03,676 [update()] [INFO ]  Utilization recorded 16.1
    2019-10-05 12:57:03,687 [get_power_usage()] [INFO ]  current 48352008481.0 last 48347694955.0
    2019-10-05 12:57:03,687 [get_power_usage()] [INFO ]  Joule_Used 4.313526 seconds_passed 2.1158459186553955
    2019-10-05 12:57:03,688 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:57:03,688 [update_displayed_graph_data()] [INFO ]  Reading 798
    2019-10-05 12:57:03,689 [update_displayed_graph_data()] [INFO ]  Reading 16.1
    2019-10-05 12:57:03,690 [update_displayed_graph_data()] [INFO ]  Reading 49.0
    2019-10-05 12:57:03,691 [update_displayed_graph_data()] [INFO ]  Reading 2.038676806268206
    2019-10-05 12:57:05,792 [update()] [INFO ]  Utilization recorded 14.0
    2019-10-05 12:57:05,804 [get_power_usage()] [INFO ]  current 48356696458.0 last 48352008481.0
    2019-10-05 12:57:05,804 [get_power_usage()] [INFO ]  Joule_Used 4.687977 seconds_passed 2.1166000366210938
    2019-10-05 12:57:05,804 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:57:05,805 [update_displayed_graph_data()] [INFO ]  Reading 800
    2019-10-05 12:57:05,807 [update_displayed_graph_data()] [INFO ]  Reading 14.0
    2019-10-05 12:57:05,808 [update_displayed_graph_data()] [INFO ]  Reading 49.0
    2019-10-05 12:57:05,809 [update_displayed_graph_data()] [INFO ]  Reading 2.214862004577781
    2019-10-05 12:57:07,911 [update()] [INFO ]  Utilization recorded 15.9
    2019-10-05 12:57:07,917 [get_power_usage()] [INFO ]  current 48361259495.0 last 48356696458.0
    2019-10-05 12:57:07,917 [get_power_usage()] [INFO ]  Joule_Used 4.563037 seconds_passed 2.113229990005493
    2019-10-05 12:57:07,917 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:57:07,917 [update_displayed_graph_data()] [INFO ]  Reading 2752
    2019-10-05 12:57:07,917 [update_displayed_graph_data()] [INFO ]  Reading 15.9
    2019-10-05 12:57:07,917 [update_displayed_graph_data()] [INFO ]  Reading 54.0
    2019-10-05 12:57:07,918 [update_displayed_graph_data()] [INFO ]  Reading 2.159271362596997
    2019-10-05 12:57:10,015 [update()] [INFO ]  Utilization recorded 16.4
    2019-10-05 12:57:10,026 [get_power_usage()] [INFO ]  current 48367450825.0 last 48361259495.0
    2019-10-05 12:57:10,026 [get_power_usage()] [INFO ]  Joule_Used 6.19133 seconds_passed 2.1093060970306396
    2019-10-05 12:57:10,027 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:57:10,027 [update_displayed_graph_data()] [INFO ]  Reading 799
    2019-10-05 12:57:10,028 [update_displayed_graph_data()] [INFO ]  Reading 16.4
    2019-10-05 12:57:10,030 [update_displayed_graph_data()] [INFO ]  Reading 48.0
    2019-10-05 12:57:10,031 [update_displayed_graph_data()] [INFO ]  Reading 2.9352449171392427
    2019-10-05 12:57:12,129 [update()] [INFO ]  Utilization recorded 13.7
    2019-10-05 12:57:12,141 [get_power_usage()] [INFO ]  current 48371600411.0 last 48367450825.0
    2019-10-05 12:57:12,141 [get_power_usage()] [INFO ]  Joule_Used 4.149586 seconds_passed 2.114750623703003
    2019-10-05 12:57:12,142 [get_power_usage()] [INFO ]  Power reading elapsed
    2019-10-05 12:57:12,142 [update_displayed_graph_data()] [INFO ]  Reading 801
    2019-10-05 12:57:12,143 [update_displayed_graph_data()] [INFO ]  Reading 13.7
    2019-10-05 12:57:12,144 [update_displayed_graph_data()] [INFO ]  Reading 48.0
    2019-10-05 12:57:12,145 [update_displayed_graph_data()] [INFO ]  Reading 1.9622105573535327
    2019-10-05 12:57:12,847 [kill_child_processes()] [DEBUG]  Killing stress process
    2019-10-05 12:57:12,848 [kill_child_processes()] [DEBUG]  No such process
    2019-10-05 12:57:12,848 [kill_child_processes()] [DEBUG]  Could not kill process
    

    Step 3: Reproduce the problem:

    Steps to reproduce:

    1. Simply open s-tui
    bug help wanted 
    opened by bdaase 14
  •   // , pip install --user s-tui fails on a fresh ubuntu installation, just installed pip

    // , pip install --user s-tui fails on a fresh ubuntu installation, just installed pip

    // ,

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Intel
    • OS version: 18.10
    • s-tui version: Latest
    • Installation method(pip/PPA/source code): pip install --user s-tui

    Step 2: Describe the problem:

    Installation requires sudo

    Observed Results:

    • What happened? (Traceback of a crash/Image/description):
    [email protected]:~$ pip install s-tui
    Collecting s-tui
      Downloading https://files.pythonhosted.org/packages/f4/43/d02518a7a3c178b04adbc813ed0959c7d89bff0fd6921286bb431de5649a/s-tui-0.8.3.tar.gz
    Collecting urwid>=1.3.1 (from s-tui)
      Downloading https://files.pythonhosted.org/packages/c7/90/415728875c230fafd13d118512bde3184d810d7bf798a631abc05fac09d0/urwid-2.0.1.tar.gz (604kB)
        100% |████████████████████████████████| 614kB 172kB/s 
    Collecting psutil>=5.2.0 (from s-tui)
      Downloading https://files.pythonhosted.org/packages/e3/58/0eae6e4466e5abf779d7e2b71fac7fba5f59e00ea36ddb3ed690419ccb0f/psutil-5.4.8.tar.gz (422kB)
        100% |████████████████████████████████| 430kB 10.1MB/s 
    Building wheels for collected packages: s-tui, urwid, psutil
      Running setup.py bdist_wheel for s-tui ... done
      Stored in directory: /home/nb/.cache/pip/wheels/3e/25/98/b0999024f1cba804214627f38d1dccaaa7f6b6e0dfefa429e4
      Running setup.py bdist_wheel for urwid ... done
      Stored in directory: /home/nb/.cache/pip/wheels/34/06/50/24011714e101b5ad8518c69175d117a257413e3c15a92983f0
      Running setup.py bdist_wheel for psutil ... error
      Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-fTerZq/psutil/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-jDwtfy --python-tag cp27:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-2.7
      creating build/lib.linux-x86_64-2.7/psutil
      copying psutil/_common.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psosx.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_pswindows.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_compat.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_pssunos.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psposix.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_pslinux.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psbsd.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/__init__.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psaix.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_exceptions.py -> build/lib.linux-x86_64-2.7/psutil
      creating build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_process.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_system.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_aix.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_linux.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_misc.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/__init__.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_osx.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_posix.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_memory_leaks.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/__main__.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_connections.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_windows.py -> build/lib.linux-x86_64-2.7/psutil/tests
      running build_ext
      building 'psutil._psutil_linux' extension
      creating build/temp.linux-x86_64-2.7
      creating build/temp.linux-x86_64-2.7/psutil
      x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlbVAf/python2.7-2.7.15=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=548 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
      unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
      
      ----------------------------------------
      Failed building wheel for psutil
      Running setup.py clean for psutil
    Successfully built s-tui urwid
    Failed to build psutil
    Installing collected packages: urwid, psutil, s-tui
    Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/urwid-2.0.1.dist-info'
    Consider using the `--user` option or check the permissions.
    
    [email protected]nb-ThinkPad-X1-Carbon-6th:~$ pip install --user s-tui
    Collecting s-tui
    Collecting psutil>=5.2.0 (from s-tui)
      Using cached https://files.pythonhosted.org/packages/e3/58/0eae6e4466e5abf779d7e2b71fac7fba5f59e00ea36ddb3ed690419ccb0f/psutil-5.4.8.tar.gz
    Collecting urwid>=1.3.1 (from s-tui)
    Building wheels for collected packages: psutil
      Running setup.py bdist_wheel for psutil ... error
      Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-hZBYrg/psutil/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-HM4Ej4 --python-tag cp27:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-2.7
      creating build/lib.linux-x86_64-2.7/psutil
      copying psutil/_common.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psosx.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_pswindows.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_compat.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_pssunos.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psposix.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_pslinux.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psbsd.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/__init__.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_psaix.py -> build/lib.linux-x86_64-2.7/psutil
      copying psutil/_exceptions.py -> build/lib.linux-x86_64-2.7/psutil
      creating build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_process.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_system.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_aix.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_linux.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_misc.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/__init__.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_osx.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_posix.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_memory_leaks.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/__main__.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_connections.py -> build/lib.linux-x86_64-2.7/psutil/tests
      copying psutil/tests/test_windows.py -> build/lib.linux-x86_64-2.7/psutil/tests
      running build_ext
      building 'psutil._psutil_linux' extension
      creating build/temp.linux-x86_64-2.7
      creating build/temp.linux-x86_64-2.7/psutil
      x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlbVAf/python2.7-2.7.15=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=548 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
      unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
      
      ----------------------------------------
      Failed building wheel for psutil
      Running setup.py clean for psutil
    Failed to build psutil
    Installing collected packages: psutil, urwid, s-tui
      Running setup.py install for psutil ... error
        Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-hZBYrg/psutil/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-TbdUb3/install-record.txt --single-version-externally-managed --compile --user --prefix=:
        running install
        running build
        running build_py
        creating build
        creating build/lib.linux-x86_64-2.7
        creating build/lib.linux-x86_64-2.7/psutil
        copying psutil/_common.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_psosx.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_pswindows.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_compat.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_pssunos.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_psposix.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_pslinux.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_psbsd.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/__init__.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_psaix.py -> build/lib.linux-x86_64-2.7/psutil
        copying psutil/_exceptions.py -> build/lib.linux-x86_64-2.7/psutil
        creating build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_process.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_system.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_aix.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_linux.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_misc.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/__init__.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_osx.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_posix.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_memory_leaks.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/__main__.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_connections.py -> build/lib.linux-x86_64-2.7/psutil/tests
        copying psutil/tests/test_windows.py -> build/lib.linux-x86_64-2.7/psutil/tests
        running build_ext
        building 'psutil._psutil_linux' extension
        creating build/temp.linux-x86_64-2.7
        creating build/temp.linux-x86_64-2.7/psutil
        x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlbVAf/python2.7-2.7.15=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=548 -DPSUTIL_LINUX=1 -DPSUTIL_ETHTOOL_MISSING_TYPES=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
        unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
        error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
        
        ----------------------------------------
    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-hZBYrg/psutil/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-TbdUb3/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-hZBYrg/psutil/
    [email protected]:~$ which pip
    /usr/local/bin/pip
    [email protected]:~$ pip
    
    Usage:   
      pip <command> [options]
    
    Commands:
      install                     Install packages.
      download                    Download packages.
      uninstall                   Uninstall packages.
      freeze                      Output installed packages in requirements format.
      list                        List installed packages.
      show                        Show information about installed packages.
      check                       Verify installed packages have compatible dependencies.
      config                      Manage local and global configuration.
      search                      Search PyPI for packages.
      wheel                       Build wheels from your requirements.
      hash                        Compute hashes of package archives.
      completion                  A helper command used for command completion.
      help                        Show help for commands.
    
    General Options:
      -h, --help                  Show help.
      --isolated                  Run pip in an isolated mode, ignoring
                                  environment variables and user configuration.
      -v, --verbose               Give more output. Option is additive, and can
                                  be used up to 3 times.
      -V, --version               Show version and exit.
      -q, --quiet                 Give less output. Option is additive, and can
                                  be used up to 3 times (corresponding to
                                  WARNING, ERROR, and CRITICAL logging levels).
      --log <path>                Path to a verbose appending log.
      --proxy <proxy>             Specify a proxy in the form
                                  [user:[email protected]]proxy.server:port.
      --retries <retries>         Maximum number of retries each connection
                                  should attempt (default 5 times).
      --timeout <sec>             Set the socket timeout (default 15 seconds).
      --exists-action <action>    Default action when a path already exists:
                                  (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).
      --trusted-host <hostname>   Mark this host as trusted, even though it does
                                  not have valid or any HTTPS.
      --cert <path>               Path to alternate CA bundle.
      --client-cert <path>        Path to SSL client certificate, a single file
                                  containing the private key and the certificate
                                  in PEM format.
      --cache-dir <dir>           Store the cache data in <dir>.
      --no-cache-dir              Disable the cache.
      --disable-pip-version-check
                                  Don't periodically check PyPI to determine
                                  whether a new version of pip is available for
                                  download. Implied with --no-index.
      --no-color                  Suppress colored output
    [email protected]:~$ 
    

    Debug Results, output of s-tui -d created in a file _s-tui.log:

    Can't run these, since I can't install. 
    

    Step 3: Reproduce the problem:

    Steps to reproduce:

    1. Attempt to install s-tui as a non-root user.
    pip install --user s-tui
    
    opened by v6 13
  • Add run time for stress test

    Add run time for stress test

    When running a stress test it should have a 'wall time' as memtest86 calls it It would be nice to have a clock showing how long the stress test has been running

    enhancement 
    opened by GM-Script-Writer-62850 12
  • Hide sensors in left column

    Hide sensors in left column

    The current sensor toggle only hides it in the graphical chart, there should also be a option to hide them in the left column, some sensor chips do not have all inputs on the chip used as such some are useless and it would be nice to hide those, i am making this a feature request and not a bug as you may want to have them in the column but not taking space in the chart a UI like this would work i think, just needs labels indicate for chart and column Screenshot_2019-04-01_07-32-58

    opened by GM-Script-Writer-62850 12
  • Ryzen temperatures

    Ryzen temperatures

    The temperature graph in s-tui is empty on my system, although I can see the temperatures using the it87 module and sensors.

    OS: Arch Linux (kernel 4.12.6) CPU: AMD Ryzen 7 1700X Mainboard: ASUS Prime B350-Plus

    This is what the log looks like:

    2017-08-16 22:10:05,935 [init()] [DEBUG] Unable to read file /dev/cpu/0/msr 2017-08-16 22:10:05,960 [update_temp()] [INFO ] Recorded temp 2017-08-16 22:10:05,960 [update_temp()] [DEBUG] Temperature sensor unavailable 2017-08-16 22:10:06,971 [update_temp()] [INFO ] Recorded temp 2017-08-16 22:10:06,971 [update_temp()] [DEBUG] Temperature sensor unavailable 2017-08-16 22:10:07,982 [update_temp()] [INFO ] Recorded temp 2017-08-16 22:10:07,982 [update_temp()] [DEBUG] Temperature sensor unavailable 2017-08-16 22:10:08,990 [update_temp()] [INFO ] Recorded temp 2017-08-16 22:10:08,990 [update_temp()] [DEBUG] Temperature sensor unavailable 2017-08-16 22:10:10,001 [update_temp()] [INFO ] Recorded temp 2017-08-16 22:10:10,001 [update_temp()] [DEBUG] Temperature sensor unavailable 2017-08-16 22:10:11,011 [update_temp()] [INFO ] Recorded temp 2017-08-16 22:10:11,011 [update_temp()] [DEBUG] Temperature sensor unavailable 2017-08-16 22:10:11,492 [unhandled_input()] [DEBUG] Caught q 2017-08-16 22:10:11,493 [unhandled_input()] [DEBUG] None 2017-08-16 22:10:11,493 [kill_child_processes()] [DEBUG] No such process

    opened by abba23 12
  • Cpu temp on Ryzen (AB350m gaming3)

    Cpu temp on Ryzen (AB350m gaming3)

    First: Thanks for this very useful tool!

    The temperature reporting is not correct on my system. First of all, the actual cpu "die" temperature is not yet mainline as of kernel 4.14, but there is path that can be applied. I installed the patched kernel and can see temp trough "k10temp-pci-00c3" in "sensors", but s-tui does still not report correct temperature

    The motherboard has it87 (also need to patch from https://github.com/groeck/it87). Looks like the s-tui takes "temp1" from it87, but "temp1" look like its always ~28-31°C, probably measures air temperature in case.

    opened by gsedej 11
  • Negative wattage reading

    Negative wattage reading

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Intel
    • OS version: xubuntu 18.04
    • s-tui version: 0.7.4
    • Installation method(pip/PPA/source code): pip

    Motherboard: Asrock Z97 Killer CPU: Intel i5-4690k (overclocked of course, around 4.3Ghz, vcc; 1.225) Cooler: NH-D14

    Step 2: Describe the problem:

    Observed Results:

    • What happened? (Traceback of a crash/Image/description): Oddity in power monitor at around 45min into a stress test (3 times in a row now) it shows a single odd reading, it is a 5 or 6 digit negative wattage value
    opened by GM-Script-Writer-62850 11
  • docs: Add Fedora installation instructions

    docs: Add Fedora installation instructions

    Packaged for Fedora. Now on QA.

    Could help with https://github.com/amanusk/s-tui/issues/99.

    opened by tim77 0
  • Provide license file on PyPI

    Provide license file on PyPI

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): AMD
    • OS version: Fedora
    • s-tui version: 1.1.1
    • Installation method(pip/PPA/source code): DNF/RPM

    Step 2: Describe the problem:

    Observed Results:

    Currently LICENSE file available only on GitHub. Please provide also LICENSE file on PyPI. This is MUST requirement for packaging into official repos in Fedora. Thanks!

    opened by tim77 1
  • Crash on raspberry pi after adding AMD power read

    Crash on raspberry pi after adding AMD power read

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Rasbperry pi
    • OS version: _____
    • s-tui version: 1.1.1
    • Installation method(pip/PPA/source code): source

    Step 2: Describe the problem:

    Observed Results:

    Crashes when starting after adding and power read

      File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "/home/pi/s-tui/s_tui/s_tui.py", line 958, in <module>
        main()
      File "/home/pi/s-tui/s_tui/s_tui.py", line 912, in main
        graph_controller = GraphController(args)
      File "/home/pi/s-tui/s_tui/s_tui.py", line 716, in __init__
        possible_sources = self._load_config(args.t_thresh)
      File "/home/pi/s-tui/s_tui/s_tui.py", line 651, in _load_config
        RaplPowerSource(),
      File "/home/pi/s-tui/s_tui/sources/rapl_power_source.py", line 45, in __init__
        self.reader = get_power_reader()
      File "/home/pi/s-tui/s_tui/sources/rapl_read.py", line 182, in get_power_reader
        if ReaderType.available():
      File "/home/pi/s-tui/s_tui/sources/rapl_read.py", line 165, in available
        if m[1] != "AuthenticAMD":
    TypeError: 'NoneType' object is not subscriptable
    

    Step 3: Reproduce the problem:

    Steps to reproduce:

    Run python3 -m s_tui.s_tui

    opened by amanusk 1
  • Drop support for older python versions. Add support for new ones

    Drop support for older python versions. Add support for new ones

    Python 2.7 has been EOL for a while. Add documentation declaring the end of official support for it and adding CI checks for 3.8, 3.9

    opened by amanusk 0
  • Best font to get the amazing display like the screenshot

    Best font to get the amazing display like the screenshot

    Is your feature request related to a problem? Please describe. It seems hard to get s-tui to render as nice as the UI screenshot.

    Describe the solution you'd like Documentation of the font used to get such a nice render.

    Additional context Add any other context about the feature request here. (screenshots, links to similar solutions) Screenshot_2021-02-01_09-12-12

    opened by dpnova 2
  • No power usage readings / Permission denied

    No power usage readings / Permission denied

    When running as a normal user, s-tui does not show power usage and upon exiting the following errors are displayed in the terminal:

    WARNING:root:ignoring (PermissionError(13, 'Permission denied'), '/sys/class/powercap/intel-rapl:0/') for file <class 'RuntimeWarning'>
    WARNING:root:ignoring (PermissionError(13, 'Permission denied'), '/sys/class/powercap/intel-rapl:0:0/') for file <class 'RuntimeWarning'>
    WARNING:root:ignoring (PermissionError(13, 'Permission denied'), '/sys/class/powercap/intel-rapl:0:1/') for file <class 'RuntimeWarning'>
    WARNING:root:ignoring (PermissionError(13, 'Permission denied'), '/sys/class/powercap/intel-rapl:0:2/') for file <class 'RuntimeWarning'>
    WARNING:root:ignoring (PermissionError(13, 'Permission denied'), '/sys/class/powercap/intel-rapl:1/') for file <class 'RuntimeWarning'>
    

    Running as root works as expected, showing power usage without error. Arch 5.9.8-arch1-1.

    opened by galfwender 1
  • Stress test only burn one core

    Stress test only burn one core

    Environment

    • System (Intel/AMD/Raspberry Pi etc): Intel i9-9920x
    • OS version: Ubuntu 18.04
    • s-tui version: 1.02
    • Installation method(pip/PPA/source code): pip

    Observed Results:

    • When I selected stress, it looks just burn one core but not all 12 cores.

    微信图片_20200831180155

    opened by Tu-114-s-undercarriage 1
  • AMDGPU Power reporting

    AMDGPU Power reporting

    I would like to add reporting of GPU power from the AMDGPU driver [1] in the power section of s-tui, would you be interested in that? However, since the driver reports power directly in Watts (instead of the energy consumed from which the power can be calculated by differentiation), some refactoring would be required.

    [1] https://www.kernel.org/doc/html/latest/gpu/amdgpu.html#hwmon-interfaces

    opened by schaerfo 2
  • [FreeBSD] decode Error

    [FreeBSD] decode Error

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Intel X86_64 Core Due 2_
    • OS version: FreeBSD 12.1_
    • s-tui version: latest on PIP3_
    • Installation method(pip/PPA/source code): pip || freebsd pkg both the same_

    Step 2: Describe the problem:

    ##s-tui Traceback (most recent call last): File "/usr/local/bin/s-tui", line 11, in load_entry_point('s-tui==1.0.2', 'console_scripts', 's-tui')() File "/usr/local/lib/python3.7/site-packages/s_tui/s_tui.py", line 903, in main graph_controller = GraphController(args) File "/usr/local/lib/python3.7/site-packages/s_tui/s_tui.py", line 715, in init possible_sources = self._load_config(args.t_thresh) File "/usr/local/lib/python3.7/site-packages/s_tui/s_tui.py", line 648, in _load_config FreqSource(), File "/usr/local/lib/python3.7/site-packages/s_tui/sources/freq_source.py", line 50, in init self.top_freq = psutil.cpu_freq().max File "/usr/local/lib/python3.7/site-packages/psutil/init.py", line 1877, in cpu_freq ret = _psplatform.cpu_freq() File "/usr/local/lib/python3.7/site-packages/psutil/_psbsd.py", line 454, in cpu_freq current, available_freq = cext.cpu_frequency(cpu) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 64: invalid start byte

    Observed Results:

    opened by j4n3b 0
  • CSV file does not contain frequency

    CSV file does not contain frequency

    Step 1: Describe your environment

    • System (Intel/AMD/Raspberry Pi etc): Intel
    • OS version: Ubuntu 20.04
    • s-tui version: 1.0.0.1
    • Installation method(pip/PPA/source code): apt install

    Step 2: Describe the problem:

    Observed Results:

    I am trying to save the data from s-tui in .csv. I am using this command :
    s-tui --csv-file StressData.csv --csv I can see the frequency in the interface. However, it is not being saved in the .csv file. Is there something I can change to obtain this ?

    Thank you !

    opened by julprov 1
Releases(v1.1.1)
  • v1.1.1(Feb 27, 2021)

    What's new?

    In newer Linux kernel versions, access to reading power sensors has been restricted to root users only. s-tui still works but will not display power statistics without invoking it with sudo

    Bug fixes and stability

    • Wrong reporting of duplicated values in CSV #161
    • Error messages printed to screen #167
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Jul 11, 2020)

    What's new?

    Bug fixes and stability Any sensor with similar names will have a suffix, usually indicating more than 1 processor, but not necessarily.

    • Crash on save settings with no .config dir for user #82, #146
    • Fix for not saving summaries independently of graphs #158
    • Do not display stress counter when no stress too is installed #157
    • Fix call for temperature hooks not called #151
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Jun 16, 2020)

  • v1.0.0(Jan 21, 2020)

    VERSION 1.0 IS OUT

    This has been a long time in the making. s-tui 1.0 is ready. There are many changes compared to the original version

    Graphical changes

    • There are now multiple graphs presented for each source. Temperature per core, usage per core etc.
    • The summaries on the side-menu present all the information in text form

    Control options

    • You can toggle both side-menu items and graphs on/off
    • now stores what graphs are selected of future uses
    • An average is display where applicable
    • Want the old look back: Just pick only the sensors you need to display one graph per sensor

    Under the hood

    Everything was made to be a lot more modular, adding a new source is simply implementing all the class methods.

    Missing features

    Some features were removed. Part of making s-tui more modular meant that some features that were specifically tailored to certain systems were removed. e.g.

    • Reading the max frequency with root for all cores
    • Displaying the max temperature recorded was removed due to lack of space. We intend to add another menu showing max/min/avg measurements recorded for all sensors

    We need help

    Help developing s-tui. There are plenty of features waiting to be developed. Feel free to open pull requests or request new features

    Source code(tar.gz)
    Source code(zip)
  • v0.8.3(Dec 1, 2018)

    What's new?

    • Fix for bug #87. Thanks to @mkesper, merged in #89

    Future development

    • This will hopefully be the last release before work on v1.0, unless new bugs are found
    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(Aug 27, 2018)

    • Add timer to measure stress duration
    • Fix bug #79, crashing on change of temperature sensor
    • Change temperature source update function for better performance
    • Remove distutils dependency
    • Performance improvements
    Source code(tar.gz)
    Source code(zip)
    s-tui(4.82 MB)
  • v0.7.5(May 6, 2018)

    Whats new?

    • Added a save settings button. The settings are saved in the default config directory #48
      • Save time interval
      • Save displayed graphs
      • Save temperature sensor setting
      • Save use of UTF-8
    • Each bar is created in a color that does not change during its life time (not alternating as before)
    • Fixed crash on mouse + esc #50
    Source code(tar.gz)
    Source code(zip)
    s-tui(6.80 MB)
  • v0.6.7(Oct 28, 2017)

    What's new?

    • Add Fan RPM in sidebar
    • Some UI changes to sidebar
    • Add option to runs a script when a threshold is exceeded. Thanks to @dvejmz
    • Add config for s-tui in user home directory. Default is ~/.config/s-tui. Also thanks to @dvejmz
    Source code(tar.gz)
    Source code(zip)
  • v0.6.4(Sep 26, 2017)

    What's new?

    • Move all Menu elements to the right for a cleaner look
    • Fix bug #39
    • Added menu to select temperature sensor from menu "Temp Sensors" (Currently resets all graphs)
    • Fix for bug #40, added option to start with --no-mouse
    • Added option to change refresh rate in seconds. Default is 1[s]
    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Sep 16, 2017)

  • v0.6.0(Sep 2, 2017)

    Whats new?

    • Major code refactoring for easier addition of sources
    • Addition of FIRESTARTER submodule (optional)
    • Option to manually select temperature source from cli
    • Many bug fixed to fit a wider range of systems

    This version included many changes. If this version caused support for your system to break, please open an issue. Previous version are also available.

    Source code(tar.gz)
    Source code(zip)
    s-tui(6.72 MB)
  • v0.5.0(Aug 23, 2017)

  • v0.4.3(Aug 17, 2017)

  • v0.4.0(Aug 9, 2017)

  • v0.2.3(Jun 22, 2017)

  • v0.2.1(Jun 12, 2017)

  • v0.2(Jun 1, 2017)

  • Version0.1(May 6, 2017)

Owner
Alex Manuskin
Blockchain Research | Open Source | Making cool things work || break
Alex Manuskin
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

Glances - An eye on your system Summary Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information thr

Nicolas Hennion 18.5k Jun 6, 2021
:mag: Google from the terminal

googler is a power tool to Google (web, news, videos and site search) from the command-line. It shows the title, URL and abstract for each result, whi

Piña Colada 5.2k Jun 6, 2021
Linux Kernel Manager and Activity Monitor 🐧💻

Linux Kernel Manager and Activity Monitor ?? ?? The kernel is the part of the operating system that facilitates interactions between hardware and soft

Orhun Parmaksız 1.2k Jun 1, 2021
:duck: DuckDuckGo from the terminal

ddgr ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many

Piña Colada 2.1k Jun 5, 2021
:speech_balloon: Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.

Translate Shell Translate Shell (formerly Google Translate CLI) is a command-line translator powered by Google Translate (default), Bing Translator, Y

Mort Yao 5k Jun 6, 2021
cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.

cloc Count Lines of Code cloc counts blank lines, comment lines, and physical lines of source code in many programming languages. Latest release: v1.9

null 11.7k Jun 7, 2021
System monitoring dashboard for terminal

gtop System monitoring dashboard for terminal. Requirements Linux / OSX / Windows (partial support) Node.js >= v8 Installation $ npm install gtop -g D

Can Güney Aksakalli 8.5k Jun 5, 2021
A code-searching tool similar to ack, but faster.

The Silver Searcher A code searching tool similar to ack, with a focus on speed. Do you know C? Want to improve ag? I invite you to pair with me. What

Geoff Greer 22.1k Jun 6, 2021
Browse Reddit from your terminal

THIS PROJECT IS NO LONGER MAINTAINED RTV Development is Shutting Down List of Alternative Projects Reddit Terminal Viewer (RTV) A text-based interface

Michael Lazar 4.5k Jun 3, 2021
A smart and nice Twitter client on terminal written in Python.

A Note about Twitter API Change Heads-up! As Twitter discontinues supporting Stream API, RainbowStream's stream function has been stopped working for

orakaro.targaryen 3.3k May 31, 2021
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Piña Colada 4.5k Jun 6, 2021
Notifies you when long-running terminal commands complete

undistract-me Notifies you when long-running terminal commands complete. What is this? Does this ever happen to you? You're doing some work, and as pa

Jonathan Lange 471 Jun 2, 2021
A new way to see and navigate directory trees : https://dystroy.org/broot

Broot A better way to navigate directories Install Broot Get an overview of a directory, even a big one br -s Notice the unlisted? That's what makes i

Canop 5.4k Jun 6, 2021
A Ruby gem that beautifies the terminal's ls command, with color and font-awesome icons. :tada:

Color LS A Ruby script that colorizes the ls output with color and icons. Here are the screenshots of working example on an iTerm2 terminal (Mac OS),

Athitya Kumar 3.7k Jun 6, 2021