Как узнать, какое приложение работает (фактическое имя, не опубликованное имя)?

Сегодня утром я прошел через долгий процесс, пытаясь определить запущенное приложение. Это было с целью сообщить об ошибке сегодня утром, но в итоге я поставил вопрос об этом в AskUbuntu.

Я напугал найти ответ на этот раз.

Я попытался запустить gnome-system-monitor (опубликованное имя: «Системный монитор»), но я не мог решить, какое приложение я искал.

Я попытался перейти в меню приложения> О, но это не покажите фактическое имя приложения. Вот скриншот gnome-software> About, в котором отображается только опубликованное имя «Ubuntu Software».

Я сделал поиск в Интернете для «программного обеспечения ubuntu», чтобы узнать, показывали ли какие-либо результаты поиска имя приложения. Я нашел , в котором говорится: «Разработка была завершена в 2015 году, а в Ubuntu 16.04 LTS вместо нее была заменена программным обеспечением GNOME». Я следил за ссылкой на GNOME Software, но имя приложения там тоже не показано.

Поэтому я не смог сообщить об ошибке, поэтому я пришел в AskUbuntu. Я выполнил поиск «программного обеспечения ubuntu» и где-то увидел «gnome-software».

Я открыл терминал, использовал команду gnome-software, и правильное приложение запустилось.

В итоге я задал вопрос в AskUbuntu вместо сообщения об ошибке. Тем не менее, у меня была такая же проблема много раз за последние 10 лет или около того, и я бы очень хотел ее решить раз и навсегда.

Есть ли быстрый и простой способ определить фактическое имя выполняемого приложения?

PS Этот вопрос был отмечен как дубликат «Этот вопрос уже имеет ответ здесь: Программное обеспечение GNOME 1 ответ», который эффективно отвечает «Нет» на мой вопрос «Есть ли простой и простой способ определить фактическое имя текущего пользователя приложения ?», но на самом деле ответ, который я получил от @waltinator, кажется, предоставляет метод (через xprop).

1
задан 9 October 2016 в 03:52

2 ответа

Попробуйте

grep -i "access prompt" /usr/share/applications/*.desktop
/usr/share/applications/gcr-prompter.desktop:Name=Access Prompt

В этом примере «общее» имя приложения - Access Prompt, а имя, которое появляется на выходе чего-то типа ps -o pid,ppid,stime,time,command -u $USER, - gcr-prompter.

Этот подход имеет два ограничения: - он выглядит только в /usr/share/applications (потому что именно там обнаружено большинство файлов .desktop). Но некоторые файлы .desktop могут находиться только в ~/.local/share/applications. - в зависимости от того, как вы определяете «приложение», некоторые приложения могут не иметь файл .desktop. В таких случаях «общее» имя и фактическое имя приложения будут одинаковыми.

1
ответ дан 23 May 2018 в 05:24
  • 1
    yuk Не все-достаточно. то есть. это иногда срабатывает, а иногда и нет. – el_gallo_azul 8 October 2016 в 06:51

Насколько я знаю, для этого не существует способа по умолчанию.

В командной строке вы можете использовать xprop для получения информации о окне (курсор изменится, и вы ожидаете щелкните по окну).

На выходе обычно есть строка, начинающаяся с _NET_WM_PID, которая содержит PID программы, и вы можете использовать, например,

ps -o comm -p THE_PID

, чтобы найти команду программы.

Вы можете поместить все это в сценарий оболочки и использовать zenity для графического отображения:

#!/bin/sh
zenity --info --text "$(ps --no-headers -o comm -p $(xprop | awk '/^_NET_WM_PID/ {print $3}'))"

Сохраните это где-то в виде файла, сделайте его исполняемым и назначьте ему горячую клавишу.

Я предполагаю, что есть случаи, когда он не работает или отображает неправильный результат, но обычно он должен быть в наименее полезным.

1
ответ дан 23 May 2018 в 05:24
  • 1
    yuk Это, по крайней мере, 4-шаговый процесс – el_gallo_azul 8 October 2016 в 06:50
  • 2
    Теперь я вижу, что второе предложение вашего ответа кажется ответом на мой вопрос. Благодарю. – el_gallo_azul 9 October 2016 в 04:07

Другие вопросы по тегам:

Похожие вопросы: