Я загрузил Идею IntelliJ, затем просто разархивировал ее и работал, она выполняется idea.sh
в терминале и сделанный новым проектом. Я хотел видеть то, что произойдет если я просто right click on icon at the left side bar in Unity -> lock to Launcher
вместо стандартного способа сделать новым idea.desktop
файл также используется для того, чтобы сделать значок средства запуска Eclipse. И это просто сделало значок на средстве запуска, которое выполняет тот конкретный проект. После этого я сделал idea.desktop
стандарт значка путь и это похожи на это:
[Desktop Entry]
Name=IntelliJ IDEA
Type=Application
Exec=idea.sh
Terminal=false
Icon=/opt/idea/idea-IC-135.909/bin/idea.png
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=IntelliJ IDEA
X-Desktop-File-Install-Version=0.22
Теперь, когда я нажимаю на тот стандарт idea.desktop
это выполняет другой экземпляр приложения (что тот, с которым я сделал right click on icon on left side bar in Unity -> lock to Launcher
) и это заканчивается с ситуацией, показанной на изображении ниже.
Я пытаюсь найти это something.desktop
значок, с которым я сделал lock to Launcher
если кто-либо и удаляет его, но я не могу найти его в /usr/share/applications
.
lock to Launcher
?.desktop
файл или что-то еще?lock to Launcher
?У меня была подобная проблема, которую я просто разрешил, где Firefox создавал эти "злые двойные" записи. Процесс, вовлеченный в соответствие запущенным приложениям к значкам, называют bamfdaemon
. Во-первых найдите версию своей сессии этого демона:
$ ps x | grep bamf
1147 pts/11 S+ 0:00 grep --color=auto bamf
2597 ? Sl 0:22 /usr/lib/i386-linux-gnu/bamf/bamfdaemon
Теперь мы собираемся проследить запуск Вашего приложения - поэтому закройте его.
$ strace -o ~/bamf.txt -p 2597
Теперь я получил предупреждение о неспособности соединиться с тем pid, таким образом, я повторно выполнил его с sudo
.
Запустите свое приложение и ожидайте, пока значок не появляется. Затем возвратитесь к своему strace экземпляру и уничтожьте его с Ctrl-C
.
Теперь просмотрите файл ~/bamf.txt - что я нашел, были уведомления bamf мой новый процесс (Firefox)
poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=3, events=POLLIN}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\353\220,\0\300\2\243\1\0\0new: ID=\"compiz-2674"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 224
recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\353\220,\0\300\2\244\1\0\0ting\\ Firefox\\ Web\\ "..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 96
recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\353\220,\0\300\2\244\1\0\0ications/firefox.des"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64
Затем ищет исполняемый файл (для Firefox в lib), затем открывается .desktop
файл это нашло как лучшее соответствие:
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5854000
_llseek(12, 0, [0], SEEK_CUR) = 0
read(12, "/usr/lib/firefox/firefox\0", 4096) = 25
read(12, "", 3072) = 0
close(12) = 0
munmap(0xb5854000, 4096) = 0
open("/usr/share/applications/firefox-4.0.desktop", O_RDONLY|O_LARGEFILE) = 12
fstat64(12, {st_mode=S_IFREG|0644, st_size=3740, ...}) = 0
read(12, "[Desktop Entry]\nVersion=1.0\nName"..., 4096) = 3740
read(12, "", 4096) = 0
close(12) = 0
Хм... это забавно - firefox-4.0 был бета-версией, которую я установил несколько yonks назад, таким образом, он ищет исполнительный файл в .desktop
:
access("/opt/firefox-4.0/firefox", X_OK) = -1 ENOENT (No such file or directory)
clock_gettime(CLOCK_MONOTONIC, {13405, 712196198}) = 0
write(8, "\1\0\0\0\0\0\0\0", 8) = 8
futex(0x9319698, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x9308780, FUTEX_WAKE_PRIVATE, 1) = 1
И в моем случае я получил плохой значок, потому что тот исполняемый файл закончился с 2011! Переместите это .destkop
из пути и внезапно Firefox соответствует своему значку снова.
В Вашем случае можно, вероятно, остановиться в точке, где Вы видите который .desktop
файл, который это открывает - это - то, которое Вы захотите удалить.