Inicia automaticamente o script Bash ao abrir um programa gráfico

2

Eu quero iniciar um script de shell automaticamente quando eu estiver iniciando, por exemplo, o LibreOffice.

O problema é que eu não sei como. Onde eu criaria o gatilho para iniciar o script.

Existe uma pasta / arquivo onde eu possa criar o gatilho?

Seria ótimo se eu não tivesse que construir uma versão 'nova' completa do LibreOffice para executar algumas linhas de script de shell.

    
por LittleByBlue 23.03.2014 / 19:48

1 resposta

2

Esta é provavelmente a maneira mais fácil de fazer o que você quer.

#!/usr/bin/env bash

# Define the program to waitfor.
program_to_watch=soffice.bin

my_commands() {
echo "This is where your first command goes."
echo "This is where your second command goes."
}

clear
echo "waitfor program script"
echo "Author: Kris Beazley"
echo "Apache 2.0 License"
echo ""
echo "$(date): Waiting for $program_to_watch to start."

while true
 do
  sleep 1
  if [[ $(ps -A | grep $program_to_watch) && -z $var ]]
    then
    var=true
    echo "$(date): $program_to_watch started."
    echo "$(date): Asking \"my_commands\" to start, and going back to sleep."
    echo "$(date): $(my_commands)"
  fi
  if [[ ! $(ps -A | grep $program_to_watch) && -n $var ]]
    then
    unset var
    echo "$(date): $program_to_watch closed."
    echo "$(date): Going back to sleep."
  fi
 done

Copie isso para um arquivo de texto e defina para um executável, mas certifique-se de que a linha #! / usr / bin / env bash não tenha linhas em branco na frente dele.

Para definir o tipo de executável:

chmod +x myscript.sh 
    
por Kris 23.03.2014 / 22:19