我想启动例如我的 ElasticSearch 实例,该实例是通过在 cinnamon 菜单中一键单击手动安装的。
我能做的是/opt/elasticsearch-1.6.2/bin/elasticsearch &
应用程序在后台启动。所以我希望通过添加菜单项来实现相同的行为。但我无法在后台模式下启动它,只有前台似乎可以工作。
工作(但仅限 fg):
$ cat ~/.local/share/applications/elasticsearch-1.6.2.desktop
[Desktop Entry]
Version=1.6.2
Type=Application
Name=ElasticSearch
Icon=/opt/elasticsearch-1.6.2/bin/elasticsearch-icon.png
Exec="/opt/elasticsearch-1.6.2/bin/elasticsearch"
Comment=ElasticSearch 1.6.2
Categories=Development;Server;
Terminal=true
StartupWMClass=elasticsearch
不起作用(尝试&
在最后设置一个 in Exec ):
Exec="/opt/elasticsearch-1.6.2/bin/elasticsearch &"
我错过了什么吗?
答案1
您可能想尝试:
x-terminal-emulator -e /opt/elasticsearch-1.6.2/bin/elasticsearch &
这应该使用默认终端(如果兼容,您可以指定您的首选终端),它通常支持 -e(xterm、ROXterm、XFCE4-terminal)。它对我来说适用于 alsamixer。
答案2
我不知道这是否是最充分的答案。但这最终对我有用:
创建一个 shell 脚本,通过以下方式启动 ElasticSearch
nohup
#!/usr/bin/env sh # -*- coding: utf-8 -*- nohup /opt/elasticsearch-1.6.2/bin/elasticsearch 2> /dev/null &
将 shell 脚本移至 /usr/local/bin (可选)并使其可执行
chmod +x elasticsearch && mv elasticsearch /usr/local/bin/
配置桌面入口调用shell脚本
[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 Categories=Development;Server; Terminal=false StartupWMClass=elasticsearch
这种方法需要nohup
额外的资源,但优点是外包给 shell 脚本是一种更通用的解决方案,也许也适合其他应用程序。