백그라운드 모드에서 실행되는 터미널 애플리케이션의 메뉴 항목을 만드는 방법

백그라운드 모드에서 실행되는 터미널 애플리케이션의 메뉴 항목을 만드는 방법

예를 들어 계피 메뉴에서 한 번의 클릭으로 수동으로 설치된 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

이것이 가장 적절한 답변인지 모르겠습니다. 그러나 이것은 마침내 나에게 효과적이었습니다.

  1. 다음과 같은 방법으로 ElasticSearch를 시작하는 쉘 스크립트를 작성하십시오.nohup

    #!/usr/bin/env sh
    # -*- coding: utf-8 -*-
    nohup /opt/elasticsearch-1.6.2/bin/elasticsearch 2> /dev/null &
    
  2. 쉘 스크립트를 /usr/local/bin(선택 사항)으로 이동하고 실행 가능하게 만듭니다.

    chmod +x elasticsearch && mv elasticsearch /usr/local/bin/
    
  3. 쉘 스크립트를 호출하도록 데스크탑 포털 구성

    [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추가 리소스가 필요하지만 셸 스크립트로 아웃소싱하는 것이 보다 일반적인 솔루션이며 다른 애플리케이션에도 적합할 수 있다는 장점이 있습니다.

관련 정보