Как я могу создать пункт меню для терминальных приложений, запускаемых в фоновом режиме

Я хочу запустить, например, мой экземпляр ElasticSearch, который устанавливается вручную одним щелчком в меню корицы.

Я могу сделать это / opt / elasticsearch -1.6.2 / bin / elasticsearch & , и приложение запускается в фоновом режиме. Я хочу, чтобы sam е поведение, добавив пункт меню. Но я не могу запустить это в фоновом режиме, кажется, работает только передний план.

Работает (но только fg):

$ cat ~ / .local / share / applications / elasticsearch-1.6.2.desktop [Desktop Entry] Версия = 1.6.2 Тип = Приложение Имя = ElasticSearch Значок = / opt / elasticsearch-1.6.2 / bin / elasticsearch-icon.png Exec = "/ opt / elasticsearch-1.6.2 / bin / elasticsearch" Комментарий = ElasticSearch 1.6.2 Категории = Разработка; Сервер; Терминал = истина StartupWMClass = elasticsearch

Не работает (пытается установить & в Exec в конце):

Exec = "/ opt / elasticsearch-1.6.2 / bin / elasticsearch &"

Я что-то упустил?

-1
06.12.2016, 14:04
2 ответа

Не знаю, наиболее ли это достаточный ответ. Но в конце концов это сработало для меня:

  1. Создайте сценарий оболочки, который запускает ElasticSearch через nohup

     #! / Usr / bin / env sh 
     # - * - coding: utf-8 - * - 
    nohup /opt/elasticsearch-1.6.2/bin/elasticsearch 2> / dev / null & 
     
  2. Переместите сценарий оболочки в / usr / local / bin (необязательно) и сделать его исполняемым

     chmod + x elasticsearch && mv elasticsearch / usr / local / bin / 
     
  3. Настройте запись на рабочем столе для вызова сценария оболочки

      [Desktop Entry] 
    Version = 1.6.2 
    Type = Application 
    Name = ElasticSearch 
    Icon = / opt / elasticsearch-1.6.2 /bin/elasticsearch-icon.png
    Exec=elasticsearch
    Comment=ElasticSearch 1.6.2 
    Категории = Разработка; Сервер; 
    Терминал = false {{1} } StartupWMClass = elasticsearch 
     

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

0
28.01.2020, 05:10

Вы можете попробовать:

x-terminal-emulator -e /opt/elasticsearch-1.6.2/bin/elasticsearch &

Это должно использовать терминал по умолчанию (вы можете указать предпочитаемый, если совместим), который обычно поддерживает -e (xterm, ROXterm, XFCE4-terminal). Это работает для меня с alsamixer.

1
28.01.2020, 05:10

Теги

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