このスクリプトをバックグラウンドで実行するにはどうすればよいですか?

このスクリプトをバックグラウンドで実行するにはどうすればよいですか?
#!/bin/bash

# Get the battery percentage for battery 0
battery0_percent=$(cat /sys/class/power_supply/BAT0/capacity)

# Get the battery percentage for battery 1
battery1_percent=$(cat /sys/class/power_supply/BAT1/capacity)

# Threshold level
threshold=10

# Check if either battery is less than 10%
if [ "$battery0_percent" -lt "$threshold" ] || [ "$battery1_percent" -lt "$threshold" ]; then
    # Display a Zenity warning
    zenity --warning --text "Battery level is below 10% on one or both batteries!"
fi

このスクリプトは、バッテリーの1つが10%未満に低下すると警告を送信します。

必要なときに通知を受け取るために、Linuxシステムのバックグラウンドでこのスクリプトをどのように実行できますか?

ベストアンサー1

これを行う方法は2つあります。

コマンドの後にアンパサンドを追加します。

./battery-script.sh &

シェルからサブプロセスを作成すると、端末を閉じてもコマンドは実行され続けます。

シェルからログアウトしても何かを維持するには、コマンドの前にnohupを追加します。

nohup ./battery-script.sh

また、コマンド出力を「nohup.out」というファイルにリダイレクトします。

さらに一歩進んで起動時にこのスクリプトを実行するには、いくつかの異なるオプションがあります。

ディスプレイサーバーを起動するたびにこのスクリプトを起動するには:
x11を使用します。

x11が起動するたびにスクリプトを実行するには、この行を最後に追加します./battery-script.sh &~/.xinitrczenity警告行があることを考慮してこの場合は必要なものかもしれません)、
waylandを実行している場合はwmに依存し、swayの場合はconfig.d/autostart_applications

ディスプレイサーバーが起動する前にスクリプトを実行するには/etc/profile.d

おすすめ記事