Pourquoi ce script ne s'exécute-t-il pas au démarrage?

5

Ce script fonctionne parfaitement lorsque je le lance manuellement. Comment puis-je le faire fonctionner au démarrage? La fonction du script est d'obtenir que Docky redémarre automatiquement en cas de panne.

J'ai créé le script comme ceci:

  • gedit ~/process_monitor.sh

Collé dans la suite ( l'a trouvé sur Ask Ubuntu ):

#!/bin/bash

if [[ -z "" ]];then
    echo "ERROR: must specify program"
    exit 1
fi

while (( 0 == 0 ));do
    [email protected] &
    pid='jobs -l | awk '{print }''
    wait $pid
done
  • Enregistré le fichier.

  • Définissez l'autorisation:

    chmod a+x ~/process_monitor.sh
    

Maintenant, quand je le lance comme ça, ça marche parfaitement:

~/process_monitor.sh docky

Toutefois, lorsque j'ajoute les éléments suivants aux applications de démarrage, cela ne permet pas le lancement du script au démarrage. Eh bien, peut-être que oui, mais le script ne fonctionne pas.

/bin/bash ~/process_monitor.sh docky

Fondamentalement, il y a une sorte d’élément graphique qui clignote à l’écran pendant une demi-seconde, mais aucun autre signe du script à afficher, et Docky ne se relance pas s’il est tué.

Comment faire cela? Je suis sûr que c'est extrêmement basique.

Je suis sur Ubuntu 14.04.

    
posée Revetahw 29.03.2016 - 14:30
la source

2 réponses

10

Utilisation des chemins dans un fichier .desktop

Le problème est que les applications de démarrage créent un fichier .desktop dans ~/.config/autostart

Dans un fichier .desktop , vous ne pouvez pas utiliser de chemins relatifs ou variables comme ~ . Utilisez plutôt des chemins absolus:

/bin/bash /absolute/path/to/process_monitor.sh docky
    
réponse donnée Jacob Vlijm 29.03.2016 - 15:11
la source
0

C'est une meilleure approche

exécuter crontab -e insérer cette ligne en bas

*/2 * * * * if [ ! 'pgrep docky' ] ; then /usr/bin/docky; fi

vérifiez si la commande /usr/bin/docky démarre docky, c’est ça. Cela vérifiera si Docky est lancé toutes les 2 minutes, sinon il démarrera Docky.

    
réponse donnée MRX 29.03.2016 - 14:44
la source

Lire d'autres questions sur les étiquettes