1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

bashのコマンドプロンプトにCPUの温度を表示させてみる。

Last updated at Posted at 2022-02-02

#きっかけ
もう2021年の年末の話だけど、前回のラズパイのケースを自作してみた。で熱対策を全く考えてなかったのでちょっと心配。
実際、訓練中にラズパイがうんともすんとも言わなくなって、熱暴走を疑うことも。

#どうする
別売りでファンが売ってるし温度設定すればで自動的に回るし。。。。ポチッとで解決?

いやいや、ショルコマンドシェルスクリプトの勉強にもなるし、CPUをコマンドプロンプトに表示さえできるようにすれば、CPUの温度が高くなればケースの蓋開ければいいんだし、それでいいんじゃない?

#どうしたら出来る?

  1. CPUの温度を知る方法を調べて
  2. それをコマンドプロンプトへ反映させる

の2つのことができれば実現出来るかと。
懐かしいなぁ「コマンドプロンプト」だって、MS-DOSでもやった気がするな、config.sysだっけautoexec.batだっけ。。。遠い目。。。

1 CPUの温度を知る方法

pi@samisnotmaydog:~ $ vcgencmd measure_temp
temp=58.0'C
pi@samisnotmaydog:~ $

vcgencmd measure_tempこれはググればすぐ出てきました。
ラズパイって4コアなんだ、おぉコアごとの情報も見れるんだ。。。

https://qiita.com/kouhe1/items/5f3f0e6fdb55e7164deb

https://qiita.com/ksksue@github/items/023f7675faec5d367956

を参考にいたしました。

2 コマンドプロンプトへの反映

まず表示は温度だけでいいよね
いちいちvcgencmd measure_tempって入力するの嫌だし
cputemp.shファイルを作って

#!/bin/bash
vcgencmd measure_temp  | cut -c 6-

cut -c 6-で最初のtemp=をカット
名前もcputempにして実行権限つけて

pi@samisnotmaydog:~ $ chmod 777 cputemp

フムフムコマンドプロンプトにはPROMPT_COMMANDで反映できると、じゃもう出来ちゃったじゃない。

pi@samisnotmaydog:~ $ PROMPT_COMMAND="cputemp"

##なんか違う

pi@samisnotmaydog:~ $ PROMPT_COMMAND="cputemp"
58.0'C
pi@samisnotmaydog:~ $
58.0'C
pi@samisnotmaydog:~ $

リターンごとに温度はアップデートされるのはいいんだけど、2段になってしまう。
おまけに、ターミナルを起動するごとにPROMPT_COMMANDに登録しないといけない
ちょっと違う、これは絶対違う。。。

##.bashrcに書いてしまおう
プロンプトの書式は起動時に.bashrcを読み込んだ際に設定される筈だよね?DOSと一緒だよね?
でも、.bashrcの中は初心者にはナニがナニやら。。。

でもなんとなく、

if [ "$color_prompt" = yes ];then 
       PS1= 〜ほにゃらら〜

のところだよね多分、いや絶対。
PROMPT_COMMAND の他にも PS1を書き換えるとプロンプト変えれるみたいだし
その前に、ターミナルからPS1の値を表示させてみると

pi@samisnotmaydog:~ $ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]($(cputemp)):\[\033[01;34m\]\w \$\[\033[00m\]

となったので、多分この何処かに先ほどのcputempの値を表示する変数を挿入するといけそうな気がするな。
この出力のやたら多い\やら]やらはエスケープシーケンスの一部らしいから、よくよく読んでみると、そんなに難しいことでも無かったけど、今回はスルー。
こうゆうのが初心者にとってネックだったりするのよね、壁よ壁ね。
以下の記事が大変参考になりました、ありがたいです。

https://qiita.com/arakaki_tokyo/items/e54d95911ec7a22a7846

そんでもって、みなさんGitのリポジトリ?、いやブランチを同じようにコマンドプロンプトに表示させておられる様子なので以下の記事を参考にさせていただいてですね。

https://qiita.com/m-tmatma/items/d9ceba9118d5f6c1be83

cputemp ではなくて$(cputemp)を以下のように仕込んでみたならば

pi@samisnotmaydog:~ $ PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]($(cputemp)):\[\033[01;34m\]\w \$\[\033[00m\]'
pi@samisnotmaydog(59.6'C):~ $

と見事にプロンプトに表示できることが確認できた、ヤッター。
先ほどの.bashrcを開いて、同じように書きこんで確認。

pi@samisnotmaydog(63.4'C):~ $

これで、いちいちvcgencmd measure_tempとか自作のcputempとかを打ち込まなくてもCPU温度が監視できるようになりましたとさ。
##めでたしめでたし
11月にポリテクセンターに入所して、毎月Qiitaに投稿する目標を立てたものの、訓練所の復習や並行して進めている資格の取得に時間を取られて、当初考えていたペースでは投稿できなくなってしまっているのが実情です。
これも、11月の終わり頃に実作業はほとんど終えていて、下書きのまま放置してしまっていました。
まだ、ネタはあるので、時間を見つけては投稿するつもりです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?