バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法

バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法

序文

最近、私の住居の電力事情が不安定で、突然の停電が頻繁に起こります。ノートパソコンを持っているのですが、電源が入らないことがあります。このままだと、ノートパソコンのSSDがすぐに壊れてしまいます。

そこで、バッテリー残量が少なくなるとコンピューターをシャットダウンし、crontab または systemd タイマーを使用して定期的にチェックする簡単なスクリプトを作成しました。

crontab コマンドの使用方法については、https://www.jb51.net/article/148575.htm を参照してください。

詳しい紹介を見てみましょう。

check_shutdown.timer:

$ cat /etc/systemd/system/check_shutdown.timer 
[ユニット]
説明=10分ごとにバッテリー残量を確認する

[タイマー]
オンカレンダー=*:0/10
永続的=true

[インストール]
WantedBy=タイマー.ターゲット

check_shutdown.service:

$ cat /etc/systemd/system/check_shutdown.service 
[サービス]
実行開始=
ExecStart=/home/jiajun/.xmonad/scripts/shutdown.py

check_shutdown.py:

#!/home/jiajun/.py3k/bin/python

psutilをインポートする
インポートログ
インポートOS
日時をインポート

bat = psutil.sensors_battery()
logging.warn("%s: バッテリーステータス: %s", datetime.datetime.now(), bat)

bat.percent < 15の場合:
ログ記録.warn("シャットダウンします")
os.system("sudo シャットダウン -h now")

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux (Ubuntu) の休止、サスペンド、スタンバイ、シャットダウンコマンドの詳細な紹介
  • PHP は、シャットダウン、再起動、新しいサイトのオープンなど、Linux サーバーの一般的な機能を制御します。
  • Linuxのシャットダウンと再起動のコマンドを簡単にマスターする
  • ダウンロード後にシャットダウンを実現するLinuxのシェルスクリプト
  • Linux シャットダウンコマンドの概要の詳細な説明
  • Linux 管理者ガイド (5) -- 起動とシャットダウン
  • Linux をシャットダウンするときに指定されたスクリプト関数を実行する
  • Linux のシャットダウンおよび再起動コマンドの詳細な説明
  • Linuxはinitコマンドを使用してシャットダウン、再起動、モードの切り替えを行います。

<<:  星のきらめき効果を実現するネイティブ js

>>:  JavaScript はマウスのドラッグを実装して div のサイズを調整します

推薦する

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

MySQL UNION演算子の基本知識ポイント

MySQL UNION 演算子このチュートリアルでは、MySQL UNION 演算子の構文と例を紹介...

JavaScript は詳細なコードで星座クエリ機能を実装します

目次1. タイトル2. コード3. 結果IV. 結論1. タイトルテキスト ボックスに誕生日の値を入...

Vue大画面表示適応方法

この記事では、vueの大画面表示適応の具体的なコードを参考までに紹介します。具体的な内容は以下のとお...

ウェブデザインにおけるキーワード設計手法の紹介

多くの場合、ホームページを作成するときに、Web ページ ヘッダー属性の設定を無視します。 Web ...

Linux のタイムドログ削除を実装する簡単な方法

導入Linux は、ファイル、ログ、電子メール、バックアップなどを自動的に生成できるシステムです。ハ...

Linux seqコマンドの使い方

1. コマンドの紹介seq (シーケンス) コマンドは、指定されたステップ サイズに従って、開始番号...

VMware インストール後に仮想ネットワーク カードが表示されない問題について

1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...

Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

画像をプルする docker プル mysql完成した画像を見る Docker イメージイメージを介...

ウェブデザインスキル:中国語と英語が混在するウェブページの上位表示の問題

<br />私はこの問題で気が狂いそうです。症状は次のとおりです。 症状の説明: Int...

dockerにros2をインストールするための詳細な手順

目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...

uniappがインターフェースドメイン名を動的に取得する方法を分析する

背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的...

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

Vueデータ監視の原理の詳細な説明

<本文> <div id="ルート"> <h1&...

要素タイムラインの実装

目次コンポーネント - タイムラインカスタムノードスタイルカスタムタイムスタンプコンポーネント - ...