问题描述
在我的 i3 配置文件中,我想在 i3 启动时运行许多脚本,包括一个选择墙纸的脚本和另一个运行 polybar 的脚本。这两个脚本完美运行了一年多,但突然间它们开始出现奇怪的行为:有时它们都不运行,有时只运行一个,有时只运行一半的脚本(wtf)。
我只运行一半脚本的意思是,例如,polybar 可能会杀死 polybar 的所有实例(第一行)但不会运行我的 bar(第二行),或者 wal 脚本可能会按预期更改颜色,但不设置壁纸。
配置中的所有其他脚本都运行得很好,除了这两个。在终端中单独运行它们总是有效的。
exec_always --no-startup-id /usr/bin/change-wallpaper
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
@H_404_10@
这是更改壁纸(我使用 pywal):
#!/bin/sh
files=(/home/marlon/Pictures/Wallpapers/*)
wal -i "${files[RANDOM % ${#files[@]}]}"
@H_404_10@
这是启动 polybar 的脚本:
#!/usr/bin/env bash
killall -q polybar
polybar bar1 >>/tmp/polybar1.log 2>&1 &
@H_404_10@
如果我从配置中删除更改壁纸,polybar 会一直运行得很好。
我已经尝试过使用完整路径、更改顺序、只使用一个脚本来完成这两件事,但到目前为止没有任何效果。
解决方法
如果,如您所说,脚本只运行了一半。最有可能的是,那些显然没有运行的部分,它们确实运行了,但由于某种原因失败了,您看不到这些命令通常具有的效果。
在这些情况下,程序通常会写入某种错误消息。所以这主要是一个调试问题。
对于 polybar,您已经将输出重定向到 /tmp/polybar1.log
处的日志文件。此文件很可能包含有关栏无法启动的原因的信息。
我建议你对你的 pywal 脚本做同样的事情,看看为什么它无法设置墙纸。