Все, что я вижу, говорит мне, что двоичный файл uname
просто делает системный вызов uname()
для получения информации, так что это может быть сложнее, чем вы хотите. Если вы готовы реализовать некоторый JNI, я бы рекомендовал сделать это и выдать системный вызов. Ближайший ценный псевдофайл из /proc
, который я могу найти, это /proc/sys/kernel/osrelease
, который в моей системе имеет содержимое 4.2.3-300.fc23.x86_64
. Это будет меняться с версиями, и может сильно меняться между версиями Linux, поэтому это может быть не так надежно, как вам нужно.
Я нашел решение. Поскольку «org.gnome.Terminal» звучит как имя службы шины D -, я просмотрел системный журнал после открытия терминала. Важная часть:
dbus -демон :Активация через systemd :service name='org.gnome.Terminal' unit='gnome -terminal -server.service'
Я предположил, что создание новой службы с именем «org.gnome.Terminal.XXX» и переименование файла.desktop для машины XXX в «org.gnome.Terminal.XXX.desktop» поможет, но на самом деле, имя файла.desktop не имеет значения. Шаги следующие:
sudo cp /usr/share/dbus-1/services/org.gnome.Terminal{,.XXX}.service
Name=org.gnome.Terminal.XXX
SystemdService=gnome-terminal-server-XXX.service
Exec=/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.gnome.Terminal.XXX
sudo cp /usr/lib/systemd/user/gnome-terminal-server{,-XXX}.service
Description=GNOME Terminal Server XXX
BusName=org.gnome.Terminal.XXX
ExecStart=/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.gnome.Terminal.XXX
Exec=gnome-terminal --window-with-profile=XXX --app-id org.gnome.Terminal.XXX
Параметр --app-id
имеет решающее значение для использования имени нашей службы вместо встроенного -в одном.