Execute o shell script do iniciador com permissões de root

3

Eu tenho um script de shell que executa um aplicativo GUI no Ubuntu 12.04.

A maneira que eu estou atualmente executando o aplicativo é que eu abro o terminal e vou para o diretório que contém esse arquivo, então faço sudo ./shellScriptFileName , que funciona muito bem, no entanto eu tenho dois problemas, um é que isso leva tão muito tempo então eu gostaria de adicionar um atalho no lançador , segundo é que o terminal precisa ficar aberto, o que é uma dor (espero que isso não seja um problema depois que eu puder execute-o a partir do lançador.

Esclarecimento: gostaria que o terminal fosse fechado quando meu aplicativo fosse iniciado.

    
por Roronoa Zoro 18.05.2012 / 03:31

3 respostas

1

Parece que você ainda não conseguiu esse problema. Você já visitou o link "como fazer", que eu forneci no comentário acima? Clique em

Se você verificar que deve resolver este problema de várias maneiras, legal e legal. Para ser simples, eu gostaria de recomendar uma maneira "fictícia" de fazer isso funcionar para você.

  1. Abra seu terminal e digite sudo apt-get install gnome-panel
  2. Quando a instalação estiver concluída, digite gnome-desktop-item-edit --create-new ~/Desktop , este comando exibirá um diálogo pop-up "Create launcher", mostrado abaixo

    personalize suas configurações (Nome, Comando, Ícone, etc.)

  3. Após o passo 2, você receberá um atalho (na verdade é chamado * .desktop, depende da sua configuração), sinta-se à vontade para colocá-lo em qualquer pasta desejada e arraste e solte no iniciador.

É isso aí, aproveite seu novo atalho :-), espero que ajude.

    
por vicd 19.05.2012 / 04:57
2

Aqui estão os passos:

1. Criando o script do interlocutor interativo

Como você deseja executar o script e, em seguida, fazer com que o terminal permaneça em um modo interativo, precisamos usar um script de chamada especial, que por sua vez requer expect . Assumiremos que o script que você deseja executar é chamado test.sh

  • Instale expect com sudo apt-get -y install expect
  • Crie o script de chamadas com este formato:

    #!/usr/bin/expect -f 
    
    spawn -noecho bash           # create a shell
    expect "$ "                  # wait for prompt
    send "cd /path to script\n"  # your script directory
    send "./test.sh\n"           # your script name
    interact                     # switch to interactive mode
    
  • Faça o script do chamador, diga call_test.sh , executável com

    sudo chmod +x /path/to/call_test.sh

2. Criando o Launcher

  • Pressione Alt+F2 e digite gksudo gedit /usr/share/applications/TestSH.desktop , onde TestSH é o nome que você quiser chamar de seu ícone de inicialização.
  • O arquivo é da seguinte forma:

    [Desktop Entry]
    Version=1.0          # your script version
    Type=Application
    Terminal=true        # you want a terminal, so...
    StartupNotify=true
    Icon=                # can be a built-in (/usr/share/icons)
                     # or a custom file, SVG or PNG
    Name=TestSH          # Whatever you want to call it
    Comment=           # description
    Exec=/path/to/call-test.sh # Path to caller script
    Categories=Application;
    
  • Por fim, verifique se o script real é executável, com sudo chmod +x /path/to/test.sh

  • Feche o editor e procure por "TestSH" (nome do script) no HUD; você verá o ícone, no qual você pode clicar, e também arrastar para o lançador ou desktop para adicioná-lo lá.
por ish 18.05.2012 / 04:10
1

Fazer o terminal ficar aberto depois não é um processo muito tranquilo, mas aqui está o que eu sugiro:

Crie um novo script com o seguinte conteúdo: gksudo /path/to/shell/script e salve-o em sua área de trabalho. Adicione o terminal ao lançador. Para abrir o programa, abra o terminal a partir do launcher e clik'n'drag o script da área de trabalho para o terminal.

Ou, se você não precisa necessariamente que o terminal seja aberto após o término do programa, faça um script como acima, salve-o em qualquer diretório e siga este guia para transformá-lo em um ícone de inicialização: link

Eu queria que o processo fosse um pouco mais suave, mas ei, é por isso que eu uso o Kubuntu ...

    
por Richard 18.05.2012 / 03:49