首页 > 解决方案 > 使用 i3blocks 在后台启动程序后,Bash 脚本暂停

问题描述

我正在尝试在 i3blocks 中创建一个块,当我单击它时将启动 Spotify(如果它已关闭)。

它大部分工作正常,但是当 Spotify 启动脚本时,它会停止,直到 Spotify 关闭并且该块变得无用。

此外,如果我重新加载 i3 Spotify 将关闭。

我尝试在后台(&)启动 Spotify 并使用 disown 标志。但问题一直在发生,我也在 i3blocks 配置文件中尝试了同样的事情(在后台启动脚本)。

#!/bin/sh

if pgrep spotify >/dev/null

then

spotifycli --status

case $BLOCK_BUTTON in

1) spotifycli --playpause;;

2) spotifycli --prev;;

3) spotifycli --next;;

esac

else

echo 

case $BLOCK_BUTTON in

1) spotify & disown; sleep 3; spotifycli --play;;

esac

fi

标签: bashi3

解决方案


我找到了解决方案,我忘记将 spotify 的输出重定向到 /dev/null。并且由于它没有给出 EOF,因此该块被卡在读取 spotify 的输出中。


推荐阅读