2017-09-25 60 views
-2

我正在运行Linux,特别是一个项目首先检测射频频谱,然后发送第二个文件发送前导码,第三个文件发送最佳频率的一些数据。这是通过混合使用chmod + x的python和sh文件实现的。Linux中的桌面图标

整个过程效果很好,当我运行通过命令行的第一个文件,不过,我现在已经尝试创建易用性和示范类似的桌面图标下面:

[Desktop Entry] 
Version=1.0 
Type=Application 
Name=helloworld 
Comment= 
Exec=./test.py 
Icon= 
Path=/home/xxx/Desktop 
Terminal=true 
StartupNotify=false 

当我现在开始使用桌面图标的过程只会打开第一个python文件。所有的链接仍然存在,但他们不运行。有什么重要的,我可能会失踪?

回答

0

我认为这是一个非常规的使用.desktop文件。通常你会指定一个可执行文件的绝对路径,或者只是名字,希望$ PATH能够找到它。我不认为调用桌面图标的任何保证都会设置任何特定的工作目录,所以我猜想应用程序的各个位不能找到彼此。

在Linux中,当一个应用程序需要调用另一个应用程序时,解决像这样的问题的常用方法是确保所有部件位于$ PATH中。由于这通常是不切实际的,所以常见的方法是让第一个应用程序部分使用/ proc/self/exe上的readlink()来查找其自己的文件系统位置,然后解析该文件以找出剩余位的位置。通常他们在同一个目录中。因此,我们通过删除第一个可执行文件的完整路径的最终文件名部分,并替换新文件名来找到绝对路径。

也有类似的方法来做同样的事情,但都涉及使用绝对的,已知的路径名,而是依靠桌面来做正确的事情。桌面有时可能会做正确的事情,但它不会是可移植的。