2017-09-25 9 views
-2

私はLinuxを実行しています。特に、最初にrfスペクトラムを検出し、次にプリアンブルを送信する2番目のファイルと最適な周波数でデータを送信する3番目のファイルを実行するプロジェクトです。これは、すべての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 

私は今、起動すると:私はしかし、CLIを使用して最初のファイルを実行すると、全体の手順がうまく機能

は、私は今、以下に使用し、同様のデモを容易にするためにデスクトップアイコンを作成しようとしましたデスクトップアイコンを使用するプロセスは、最初のpythonファイルのみを開きます。すべてのリンクは残っていますが、実行されません。私が紛失している可能性のある重要なことはありますか?

答えて

0

これは.desktopファイルのかなり普遍的な使用だと思います。通常は、$ PATHがそれを見つけることを期待して、実行可能ファイルの絶対パスか名前のみを指定します。デスクトップアイコンを呼び出すと特定の作業ディレクトリが設定されるという保証はないと思うので、アプリケーションのさまざまな部分が互いに見つけられないと思います。

Linuxでこのような問題を回避する通常の方法は、あるアプリケーションが別のアプリケーションを呼び出す必要がある場合、すべてのパーツが$ PATHにあることを確認することです。これはしばしば実用的ではないので、最初のアプリケーション部分に/ proc/self/exeでreadlink()を使ってファイルシステムの場所を見つけ、それを解析してビットの残りの部分がどこにあるかを調べることです。通常、それらは同じディレクトリにあります。したがって、最初の実行可能ファイルの完全パスの最後のファイル名部分を削除し、新しいファイル名を置き換えることによって絶対パスを見つけます。

同じことをするには同様の方法がありますが、すべて正しいことをするためにデスクトップに頼っているのではなく、絶対パス名で作業する必要があります。デスクトップは時々正しいことをするかもしれませんが、ポータブルではありません。

関連する問題