答案1
桌面文件不在 shell 中运行;这意味着您不能firefox %u & /bin/monitor_process.sh firefox
直接运行诸如 之类的复杂命令;在这种情况下,一切都会在&
部分失败,该部分不会被解释为“背景firefox %u
”,而是字面上的&
,它作为参数传递firefox %u
给/bin/monitor_process.sh
以及firefox
。
要修复该问题,请firefox %u & /bin/monitor_process.sh firefox
在至少支持作业控制的 shell 中运行(只需简单dash
操作即可):
[Desktop Entry]
Name=foo
Exec=sh -c 'firefox %u & /bin/monitor_process.sh firefox'
Type=Application
答案2
您可以尝试对您的.desktop
文件执行此执行行:
Exec= bash -c "firefox && /bin/monitor_process.sh firefox"
bash
将打开一个 shell 并正确解释 &&。