bash - 使用 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
解决方案
我找到了解决方案,我忘记将 spotify 的输出重定向到 /dev/null。并且由于它没有给出 EOF,因此该块被卡在读取 spotify 的输出中。
推荐阅读
- php - 403 Forbidden - 拒绝访问服务器上的此资源 - PHP
- macos - 通过 WiFi 进行 Internet 共享时如何在 Mac 上查看连接的 IP 地址
- html - 错误消息“drive.google.com 拒绝连接”。
- email - 如何使用 postfix 在 Ubuntu 16.04 上设置邮件服务器
- css - CSS,Stylus:有条件的“else”被忽略
- python - 如何根据 anotehr 单选按钮值禁用 django 表单单选按钮
- vtk - 如何使用 pyqt6 添加 vtk/pyvista 窗口?
- python - django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。当我尝试在heroku上的consumers.py中导入模型时
- angular - 在相应的 Angular 规范文件中调用方法会引发“不是函数”错误
- apache - 如何使用 htaccess 更改子域的文档根目录