2017-09-25 100 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()來查找其自己的文件系統位置,然後解析該文件以找出剩餘位的位置。通常他們在同一個目錄中。因此,我們通過刪除第一個可執行文件的完整路徑的最終文件名部分,並替換新文件名來找到絕對路徑。

也有類似的方法來做同樣的事情,但都涉及使用絕對的,已知的路徑名,而是依靠桌面來做正確的事情。桌面有時可能會做正確的事情,但它不會是可移植的。