2 votes

Démarrer automatiquement le script Bash lors de l'ouverture d'un programme graphique

Je veux démarrer un script shell automatiquement lorsque je démarre, par exemple, LibreOffice.

Le problème est que je ne sais pas comment faire. Où devrais-je placer le déclencheur pour démarrer le script?

Existe-t-il un dossier/fichier où je pourrais placer le déclencheur?

Il serait bien si je n'avais pas à construire une version 'nouvelle' complète de LibreOffice pour exécuter quelques lignes de script shell.

2voto

ocodo Points 1744

Ceci est probablement la manière la plus facile de faire ce que vous voulez.

#!/usr/bin/env bash

# Définir le programme à surveiller.
program_to_watch=soffice.bin

mes_commandes() {
echo "C'est ici que va votre première commande."
echo "C'est ici que va votre deuxième commande."
}

clear
echo "Script d'attente du programme"
echo "Auteur : Kris Beazley"
echo "Licence Apache 2.0"
echo ""
echo "$(date) : En attente du démarrage de $program_to_watch."

while true
 do
  sleep 1
  if [[ $(ps -A | grep $program_to_watch) && -z $var ]]
    then
    var=true
    echo "$(date) : $program_to_watch démarré."
    echo "$(date) : Demande à \"mes_commandes\" de commencer, et retourne dormir."
    echo "$(date) : $(mes_commandes)"
  fi
  if [[ ! $(ps -A | grep $program_to_watch) && -n $var ]]
    then
    unset var
    echo "$(date) : $program_to_watch fermé."
    echo "$(date) : Retour au sommeil."
  fi
 done

Il suffit de copier cela dans un fichier texte et de le rendre exécutable, mais assurez-vous que la ligne #!/usr/bin/env bash n'a pas de lignes vides devant.

Pour le rendre exécutable, tapez :

chmod +x myscript.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X