예를 들어 계피 메뉴에서 한 번의 클릭으로 수동으로 설치된 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
다음을 시도해 볼 수도 있습니다.
x-terminal-emulator -e /opt/elasticsearch-1.6.2/bin/elasticsearch &
이는 일반적으로 -e(xterm, ROXterm, XFCE4-terminal)를 지원하는 기본 터미널(호환되는 경우 선호하는 터미널을 지정할 수 있음)을 사용해야 합니다. 그것은 alsamixer와 함께 작동합니다.
답변2
이것이 가장 적절한 답변인지 모르겠습니다. 그러나 이것은 마침내 나에게 효과적이었습니다.
다음과 같은 방법으로 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 Categories=Development;Server; Terminal=false StartupWMClass=elasticsearch
이 접근 방식에는 nohup
추가 리소스가 필요하지만 셸 스크립트로 아웃소싱하는 것이 보다 일반적인 솔루션이며 다른 애플리케이션에도 적합할 수 있다는 장점이 있습니다.