如何修复 Ubuntu 16.04 Unity 桌面文件的间歇性双击行为

如何修复 Ubuntu 16.04 Unity 桌面文件的间歇性双击行为

我尝试过并测试过@terdon 的 .desktop昨天归档。这里是:

“一种更简洁的方法是编写一个 .desktop 文件来启动脚本,然后双击该文件。例如:

[Desktop Entry]
 Exec=/home/user/yourscript.sh
 Terminal=true
 Type=Application

将该文件保存foo.desktop在您的~/Desktop文件夹中。现在它将显示为一个图标,双击它将使您的脚本在终端中运行。显然,您需要更改/home/user/yourscript.sh为脚本的实际路径

当我按照 @terdon 的建议步骤操作时,我的 Ubuntu 16.04 Unity 桌面文件的双击行为是间歇性的。有时它会成功,有时则无法启动桌面条目的执行行中指向的 bash 脚本。

为什么会发生这种情况以及如何解决此问题?

这是/home/venker/.local/share/applications/fsu.desktop失败的

[Desktop Entry]
Exec=/home/venker/Debug/My_NVR_Recorder.exe.cfg
Terminal=true
Type=Application

这是/home/venker/Debug/My_NVR_Recorder.exe.cfg有效的:

#!/bin/bash
/home/venker/Debug/Generic.cfg -start /home/venker/Debug/My_NVR_Recorder.exe "Recorder Manage"

这是/home/venker/Debug/Generic.cfg有效的:

#!/bin/bash
if [ $1 == "-start" ]; then 
   exec /usr/lib/mono/4.5/mono-service.exe $2 & >& /dev/null
else 
   pkill "$3"
   mystring="/tmp/${2}.lock"
   rm "$mystring"
fi

以上3个文件受rwxr_xr_x保护。

以下是有效的脚本文件 /home/venker/Debug/My_NVR_Recorder.exe.cfg 的示例:

   #!/bin/bash
    exec /usr/lib/mono/4.5/mono-service.exe /home/venker/Debug/My_NVR_Recorder.exe &

答案1

以下是我如何消除双击 fsu.desktop 的间歇性行为。

这是 fsu.desktop。

[Desktop Entry]
Name=FSU79
Exec=/usr/bin/gnome-terminal  -e  "bash  -c   /home/wendy/Debug/My_HDR_Recorder.exe.cfg"
Terminal=false
Type=Application

这是/home/wendy/Debug/Generic.cfg

#!/bin/bash

if [ $1 == "-start" ]; then 
    cd /home/wendy/Debug
    exec /usr/lib/mono/4.5/mono-service.exe $2 & >& /dev/null 
else 
   pkill "$3"
   exe=$(echo $2 | grep -oE "[^/]+$")
   mystring="/tmp/${exe}.lock"
   rm "$mystring"
fi

这是/home/wendy/Debug/My_HDR_Recorder.exe.cfg

#!/bin/bash
nohup /home/wendy/Debug/Generic.cfg -start /home/wendy/Debug/My_HDR_Recorder.exe "Recorder Manage"

[编辑 2016 年 6 月 2 日晚上 9:35 有人可以让我们的架构师或我知道这完全消除了双击 fsu.desktop 的间歇性行为的原因吗?先感谢您。]

相关内容