Я хочу запустить, например, мой экземпляр 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 &"
Я что-то упустил?
Не знаю, наиболее ли это достаточный ответ. Но в конце концов это сработало для меня:
Создайте сценарий оболочки, который запускает ElasticSearch через nohup
#! / Usr / bin / env sh
# - * - coding: utf-8 - * -
nohup /opt/elasticsearch-1.6.2/bin/elasticsearch 2> / dev / null &
Переместите сценарий оболочки в / usr / local / bin (необязательно) и сделать его исполняемым
chmod + x elasticsearch && mv elasticsearch / usr / local / bin /
Настройте запись на рабочем столе для вызова сценария оболочки
[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
в качестве дополнительного ресурса, но имеет то преимущество, что аутсорсинг сценария оболочки является более общим решением, возможно, также подходящим для других приложений.
Вы можете попробовать:
x-terminal-emulator -e /opt/elasticsearch-1.6.2/bin/elasticsearch &
Это должно использовать терминал по умолчанию (вы можете указать предпочитаемый, если совместим), который обычно поддерживает -e (xterm, ROXterm, XFCE4-terminal). Это работает для меня с alsamixer.