私は試してテストしました。.desktop(@terdon製作)昨日提出しました。ここにいる:
「よりきれいなアプローチは、.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をダブルクリックする断続的な動作を完全に排除する原因を私たちの設計者または私に伝えますか?よろしくお願いします。 ]