i3 状態停止

i3 状態停止

私はDebian 10でi3 Windows Managerを実行しており、現在自宅で働いているため、X2goを介してコンピュータに接続しています。

Debian 9からDebian 10(最近完了)にアップグレードした後、i3ステータスバーが停止し、i3を「再ロード」する必要がありますが、これは少し痛いです。

これは私の.i3status.confです。

general {
    interval        = 1
    colors          = true
    color_good      = '#88b090'
    color_degraded  = '#ccdc90'
    color_bad       = '#e89393'
}

# order += "volume master"
# order += "disk /"
# order += "disk /home"
# order += "disk /media/data"
# order += "ethernet br0"
# order += "cpu_temperature 0"
# order += "memory"
# order += "load"
order += "tztime local"

# ethernet br0 {
#     #if you use %speed, i3status requires root privileges
#     format_up = "%ip (%speed)"
#     format_down = ""
# }

tztime local {
    format = "%A %e.%B %H:%M:%S"
}

# load {
#     format = "%1min"
# }

# cpu_usage {
#     format = "%usage"
# }

# cpu_temperature 0 {
#   format = "%degrees°C"
# }

# disk "/" {
#   format = "/ %avail"
#   prefix_type = custom
# }

# disk "/home" {
#   format = "/home %avail"
#   prefix_type = custom
# }

# disk "/media/data" {
#   format = "/media/data %avail"
#   prefix_type = custom
# }

# volume master {
#     format = "VOL: %volume "
#     format_muted = "MUTE "
#     device = "default"
#     mixer = "Master"
#     mixer_idx = 0
# }

凍結すると時間は動かなくなりますが、凍った日時は見続けることができます。

ターミナルでi3statusを実行してみましたが、数週間中断することなくうまく動作しました。

これは出力です(これは設定のすべての設定を有効にしたときの出力であり、それ以降は再起動する必要はありません)。

 ~ % i3status
i3status: trying to auto-detect output_format setting
i3status: auto-detected "term"
/ 6.5 GB | /home 103.1 GB | /media/data 543.9 GB | 4.29 | Monday 28.September 09:10:16

問題を再現することはできませんが、X2goを終了するときと関係があると思います。 X2go を終了すると、セッションはバックグラウンドで引き続き実行され、翌日に接続されます。さて、この状態では通常停止します。おそらくi3-statusは分離されていますが、まだX2goセッションを実行するのが好きではありません。

修正する

i3status.sh スクリプトの実行後、退職直後に X2go を切断したときにエラーメッセージで失敗しました。

i3status: trying to auto-detect output_format setting
i3status: falling back to "none"

私の設定に以下を追加しました - >テストのための一般的な領域

    output_format = "i3bar"

アップデート:強制失敗

X2goリモートセッションを終了し(バックグラウンドで実行中のまま)、コーヒーを沸騰させた後(5分)、X2goセッションに再参加して強制的に失敗しました。

それでも失敗します。 output_format が i3bar に強制されます。これで、i3status-err.logにエラーは発生しません。

再起動するには++ rを押す必要があります。

答え1

ステータスバーが停止すると、プロセスがクラッシュして終了した可能性があります。i3status問題が再発した場合は、実行中であることを確認する必要があります。

i3status独自のスクリプトを使用して問題を解決することもできます。

i3ファイルから独自のスクリプトにconfig置き換えます。status_command

# status_command i3status -c ~/.config/i3/i3status
status_command /home/YOURUSER/.config/i3/i3status.sh

生成~/.config/i3/i3status.sh(およびchmod + x):

#!/bin/bash
echo $(date) started >> /tmp/i3status.log
while :
do
    i3status 2> /tmp/i3status-err.log | while :
    do
        read line
        echo "$line"
        touch /tmp/i3status-last-seen.log
    done
    echo $(date) restarted >> /tmp/i3status.log
done

またはi3statusのバグの場合は、次の回避策を試してください。

https://github.com/altdesktop/i3-dstatus

答え2

私もこの問題に直面しました。私の場合、disk {アクセスできないNFSマウントのセクションにぶら下がっていました。その条項を削除し~/.config/i3status/configて修正しました。

関連情報