Это ситуация:
Работая над (следующей версией) редактора быстрого списка Unity, я хотел бы добавить надежный способ «перезапуска» значков запуска. Для этого мне нужно убрать значок (редактирование gsettings) и заменить его на ту же позицию. Пока проблем нет. Однако, если рассматриваемое приложение работает, пользователь, возможно, потеряет данные, так как приложение закроется, когда его значок будет удален из модуля запуска. Мне нужен надежный способ найти имя процесса приложения, позволить редактору проверить список запущенных процессов, если приложение запущено, и отправить пользователю предупреждение о том, что значок нельзя перезапустить, если приложение Бег.
Пока что я сделал, чтобы редактор просмотрел файл рабочего стола, прочитал команду, также прочитал команду, извлеченную из раздела каталога, и, кроме того, изучил возможные удаленные сценарии, на которые может указывать команда файла рабочего стола, ища строки, начинающиеся с с "./"
Хотя этот метод, кажется, хорошо работает со всеми приложениями, на которых я его тестировал, я чувствую, что должен быть более простой способ решения проблемы «все в одном» ...
Есть?
Также приветствуются предложения поймать более исключительные ситуации!
ps
и xprop
вывод?
.desktop
файла, которое не обязательно является WM_CLASS. WM_CLASS может быть установлен из приложения.
firefox.desktop
, он запускает Firefox с PID 1234, но изменился WM_CLASS
на что-то вроде «Полностью не Firefox». .desktop
Файл , однако , не меняется. Вы хотите получить имя, прикрепленное к PID 1234 независимо от WM_CLASS
. Я думаю, что я вижу, что именно нужно сделать. Но вы не ответили на мой первый вопрос - это нормально, если это только для Unity?