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
soit automatiquement relancé en cas de blocage.
J'ai créé le script comme ceci:
gedit ~/process_monitor.sh
Collé dans ce qui suit ( trouvé sur Ask Ubunt ):
#!/bin/bash
if [[ -z "$1" ]];then
echo "ERROR: must specify program"
exit 1
fi
while (( 0 == 0 ));do
$@ &
pid=`jobs -l | awk '{print $2}'`
wait $pid
done
Enregistré le fichier.
Définir la permission:
chmod a+x ~/process_monitor.sh
Maintenant, quand je le lance comme ça, ça marche parfaitement:
~/process_monitor.sh docky
Cependant, lorsque j'ajoute ce qui suit aux applications de démarrage, le script ne se lance pas au démarrage. Eh bien, peut-être que si, mais le script ne fonctionne pas.
/bin/bash ~/process_monitor.sh docky
En gros, il y a une sorte d’élément graphique qui clignote à l’écran pendant une demi-seconde, mais aucun autre signe du script n’est visible, et Docky
ne se relance pas s’il est tué.
Comment faire ce travail? Je suis sûr que c'est extrêmement basique.
Je suis sur Ubuntu 14.04.
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 tels que ~
. Utilisez des chemins absolus à la place:
/bin/bash /absolute/path/to/process_monitor.sh docky
C'est une meilleure approche
lancez crontab -e
insérez cette ligne en bas
*/2 * * * * if [ ! `pgrep docky` ] ; then /usr/bin/docky; fi
vérifie si la commande /usr/bin/docky
démarre dans la station d'accueil, c'est tout. Cela vérifiera si docky est exécuté toutes les 2 minutes, sinon il démarrera docky.