我正在尝试制作一个非常漂亮的桌面控制台,它可以显示来自 /dev/logi 的系统日志。该设备显示来自 /var/log 中多个文件的新内容。我想使用 urxvt 和 tmux 来实现这一点。一切似乎都正常,但我不知道如何自动启动它。我正在使用 openbox,所以我尝试将以下行添加到 /home/morfik/.config/openbox/autostart :
(sleep 2 && urxvt -name 'konsola_desktop' -e sh -c "tmux -c 'cat /dev/logi'") &
这没有按预期工作。urxvt 星号,如果记录了某些内容,则会显示在控制台上。但缺少一部分,没有 tmux。我需要它,因为我在 /home/morfik/.Xresources 中设置了以下选项:
URxvt*saveLines: 0
我使用 /etc/tmux.conf 中指定的 tmux 缓冲区:
set -g history-limit 5000
因此,如果我启动上述命令,我将无法滚动输出。我甚至无法分屏,因为没有 tmux。也没有 tmux 进程:
ps -eo "%mem args" | grep -i tmux
1.1 urxvt -name konsola_desktop -e sh -c tmux -c 'cat /dev/logi'
0.0 sh -c tmux -c 'cat /dev/logi'
但是当我仅执行以下步骤时:
urxvt -name 'konsola_desktop'
tmux
cat /dev/logi
一切正常:
ps -eo "%mem args" | grep -i tmux
0.1 tmux
0.1 tmux
有人知道发生了什么事吗?
答案1
我找到了一个解决方案。
首先,最好使用 tmux 配置文件,而不是在自动启动行中输入命令。因此,它将是:
new true
set set-remain-on-exit on
new -n logi "cat /dev/logi"
neww -n test
splitw -v -p 50 -t 0
neww -n test2
splitw -h -p 50 -t 0
set -u set-remain-on-exit
上面的几行应该添加到 /etc/tmux.conf 中,现在启动控制台的行应该如下所示:
(sleep 2 && urxvt -name 'konsola_desktop' -e bash -c "tmux attach") &
它甚至更好,因为我可以定义多个窗口并在它们之间切换。