Linux-Mint

如何為以後台模式啟動的終端應用程序創建菜單項

  • February 24, 2020

我想啟動我的 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 &"

我錯過了什麼嗎?

我不知道這是否是最充分的答案。但這對我有用,最後:

  1. 創建一個 shell 腳本,通過它啟動 ElasticSearchnohup
#!/usr/bin/env sh
# -*- coding: utf-8 -*-
nohup /opt/elasticsearch-1.6.2/bin/elasticsearch 2> /dev/null &
  1. 將 shell 腳本移動到 /usr/local/bin(可選)並使其可執行
chmod +x elasticsearch && mv elasticsearch /usr/local/bin/
  1. 配置桌面入口呼叫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。

引用自:https://unix.stackexchange.com/questions/328410