Posso fazer um atalho de iniciador executar ações diferentes com base em uma condição

4

O que eu quero fazer é bem simples de entender.

Eu quero que o mesmo atalho de lançador funcione como um swith ON / OFF para, por exemplo.

Como se eu tivesse feito um lançador para iniciar o LAMPP com o comando gksudo /opt/lampp/lampp start

Isso funciona corretamente para iniciar o lampp. Agora, o que eu quero fazer é: Se o LAMPP não estiver ligado, o lançador deve executar o comando acima e iniciar o lampp. Enquanto o lampp estiver ligado, quero que você execute o comando gksudo /opt/lampp/lampp stop e pare o lampp.

Eu quero que esses 2 comandos sejam executados pelo mesmo lançador, onde o comando a ser executado é decidido com base em uma condição (LAMPP sendo ON ou OFF no exemplo acima)

Posso fazer isso? e como?

Eu acho que escrever um script e fazer com que o lançador execute o script bash faria isso.mas como eu verifico se a lâmpada do tempo está desligada?

    
por Nirmik 29.06.2012 / 14:48

1 resposta

4

Percebi que lampp inicia proftpd para que possamos modificar um scirpt que verifica um serviço em execução, se esse serviço estiver em execução, ele parará o lampp, modifiquei o script aqui - link

Primeiro, crie um arquivo de texto vazio ou abra o gedit e cole este código -

#!/bin/sh
SERVICE='proftpd'

if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
    gksudo /opt/lampp/lampp stop && notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP stopped."


else
    gksudo /opt/lampp/lampp start && notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP started."

fi

Isso também deve enviar uma notificação de que ele começa e termina.

Salve o arquivo como lampp.sh e torne-o executável - clique com o botão direito do mouse = > Propriedades = > Permissões = > Permitir a execução do arquivo como programa.

Agora use seu método favorito para criar um lançador com o script Como posso criar lançadores na minha área de trabalho?

Ou eu fiz um que inclui o ícone

Coloque lampp.sh em /usr/local/bin

Crie um arquivo chamado Lampp.desktop e cole isso nele -

[Desktop Entry]
Version=1.0
Type=Application
Name=Lampp
Comment=
Exec=/usr/local/bin/lampp.sh
Icon=/opt/lampp/htdocs/xampp/img/logo-small.gif
Path=
Terminal=false
StartupNotify=true
GenericName=

Ou, se você quiser, pode fazer uma lista de cliques com o botão direito para as diferentes funções para conseguir iniciar e parar a função sem o script -

[Desktop Entry]
Version=1.0
Type=Application
Name=Lampp
Comment=
Exec=gksudo lampp
Icon=/opt/lampp/htdocs/xampp/img/logo-small.gif
Path=/opt/lampp
Terminal=false
StartupNotify=true
GenericName=

X-Ayatana-Desktop-Shortcuts=NewWindow;Start;Stop;Restart;Security
[Start Shortcut Group]
Name=Start
Exec=start
TargetEnvironment=Unity

[Stop Shortcut Group]
Name=Stop
Exec=stop
TargetEnvironment=Unity

[Restart Shortcut Group]
Name=Restart
Exec=restart
TargetEnvironment=Unity

[Security Shortcut Group]
Name=Security
Exec=security
TargetEnvironment=Unity

Então use um ou outro, divirta-se.

Também descobri que eles escreveram um painel de controle para o programa usar -

gksudo /opt/lampp/share/xampp-control-panel/xampp-control-panel.py

Se você quiser tentar isso com outros programas, poderá criar scripts que verificarão se estão em execução e os matarão (o aviso pode perder o trabalho, mas seria bom para programas congelados) Diga por exemplo conky ou qualquer outro programa, principalmente.

#!/bin/sh
    SERVICE='conky'

    if ps ax | grep -v grep | grep $SERVICE > /dev/null

    then
        killall conky

    else
        conky

    fi

salve como conky.sh coloque em /usr/local/bin

Em seguida é a parte difícil, você precisa encontrar o arquivo conky.desktop, então no terminal digite locate conky.desktop , em seguida, navegue para essa pasta e edite o arquivo desktop no gedit (ou seu editor favorito, pode precisar de privilégios dependendo de onde é) e substitua a linha Exec= por Exec=/usr/local/bin/conky.sh (note que isso quebrará qualquer um dos lançadores que possuem menus do botão direito do mouse)

    
por Mateo 29.06.2012 / 19:22