Linux-Mint
如何為以後台模式啟動的終端應用程序創建菜單項
我想啟動我的 ElasticSearch 實例,該實例是通過在肉桂菜單中一鍵手動安裝的。
我能做的是
/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
不工作(試圖在
&
最後設置一個 Exec ):Exec="/opt/elasticsearch-1.6.2/bin/elasticsearch &"
我錯過了什麼嗎?
我不知道這是否是最充分的答案。但這對我有用,最後:
- 創建一個 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 腳本是一種更通用的解決方案,可能也適用於其他應用程序。
您可能想嘗試:
x-terminal-emulator -e /opt/elasticsearch-1.6.2/bin/elasticsearch &
那應該使用預設終端(如果兼容,您可以指定您喜歡的終端),它通常支持 -e(xterm、ROXterm、XFCE4-terminal)。它適用於我的 alsamixer。