Tout d'abord, je n'utilise pas Docky. Mais je suppose que Docky est dans votre $ PATH. Sinon, spécifiez le chemin d'accès complet au binaire.
Voici l'utilisation impressionnante de Bash:
Commencez avec un fichier, tel que (vim au lieu de gedit si vous voulez):
gedit ~/process_monitor.sh
Tapez ce qui suit:
#!/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
Enregistrez le fichier.
Définissez l'autorisation:
chmod a+x ~/process_monitor.sh
Vous pouvez maintenant exécuter un programme comme celui-ci:
~/process_monitor.sh docky
et il lancera le programme une fois, et assurez-vous de redémarrer le programme si vous décidez de le quitter ou s'il se bloque.
Pour ajouter une entrée au démarrage du système afin qu'il lance le programme une fois connecté et ne s'arrêtera pas tant que vous ne quitterez pas, procédez comme suit:
Accédez à Unity Dash, saisissez et recherchez «Applications de démarrage»
Cliquez sur Ajouter
Nom: Docky ou tout ce que vous aimez
Commander: /bin/bash ~/process_monitor.sh docky
Commentaire: ce que vous aimez
Assurez-vous que la nouvelle entrée est cochée. Déconnectez-vous et connectez-vous et vous voyez Docky tout le temps.
Que faire si j'exécute Gnome 3 et que je n'ai pas "Applications de démarrage" et que je souhaite le placer dans un fichier .desktop à la place? Que dois-je mettre pour la ligne "Exec ="?
guttermonk
Je l'ai! :) "Terminal = False" et "Exec = nohup bash -c '~ / process_monitor.sh docky; $ SHELL' &"
guttermonk
Merci! Je l'utilise également pour Dropbox et Synergy. Fonctionne très bien!
guttermonk
Le script fonctionne parfaitement lorsque je l'exécute manuellement, mais j'ai ajouté des /bin/bash ~/process_monitor.sh dockyapplications de démarrage, mais rien ne se passe. En fait, je vois la moitié d'une fenêtre de terminal clignoter à l'écran pendant une seconde après la connexion, mais c'est tout. Le script ne démarre pas même si j'ai ajouté cette commande aux applications de démarrage. Que devrais-je faire?
Revetahw dit Réintégrer Monica
@guttermonk Pouvez-vous offrir de l'aide sur ma requête dans le commentaire ci-dessus? J'ai également posté cela comme une question distincte: askubuntu.com/questions/751465/…
Revetahw dit Reinstate Monica
1
Ceci est similaire à la méthode du moniteur de processus, utilisant une boucle jusqu'à, mais uniquement pour Docky lui-même.
Script simple:
until docky; do
sleep 1
done
Ensuite, supprimez docky de vos applications de démarrage et ajoutez simplement sh [chemin d'accès au fichier], tel que:
J'ai écrit un petit script "wrapper" ci-dessous. Il apparaîtra docky et le surveillera. Générez cela seul sans docky dans les applications de démarrage.
#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: [email protected]
# Date: March 31st, 2016
# Purpose: monitor script that respawns docky if it dies
# Written for: http://askubuntu.com/q/752478/295286
# Tested on: Ubuntu 14.04 LTS
###########################################################
# Copyright: Serg Kolo , 2016
#
# Permission to use, copy, modify, and distribute this software is hereby granted
# without fee, provided that the copyright notice above and this permission statement
# appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
ARGV0="$0"
ARGC=$#
monitor_pid ()
{
if ps -p $1 > /dev/null ;
then
# Docky is there, no-op
sleep 0.25
continue
else
# Docky is gone,ask user if they want it back
DOCKY_PID=$(ask_restart)
fi
}
spawn_docky()
{
docky &> /dev/null &
echo $! # return docky pid
}
ask_restart ()
{
zenity --question --title="Docky Monitor"\
--text="Docky has quit, do you want to restart it ?" > /dev/null
if [ $? -eq 0 ] ;then
spawn_docky
else
kill -SIGTERM $MYPID # exit the script
fi
}
main()
{
local MYPID=$$
local DOCKY_PID=$(spawn_docky)
while true;
do
monitor_pid $DOCKY_PID
done
}
main
Mais seulement si j'utilise Terminal, ou yakuake ... donc je peux juste ouvrir un nouveau shell, quand j'utilise "~ / process_monitor.sh docky" ou "/ bin / bash ~ / process_monitor.sh docky"
Mais si je vais dans les "Applications de démarrage", cliquez sur Ajouter et suivez ces instructions, rien ne se passe lorsque mon ordinateur démarre. Je dois encore exécuter cette commande manuellement. Et ça a gagné du travail, quand j'ai mis /home/"username"/process_monitor.sh docky aussi.
J'ai trouvé ou créé une solution (qui n'a pas été publiée quelque part) pour qu'elle démarre automatiquement.
Au lieu d'utiliser le docky ~ / process_monitor.sh, créez un nouveau fichier texte:
gedit ~ / start.sh
type suivant
#! / bin / bash
~ / process_monitor.sh docky
terminé
Enregistrer le fichier
Définir l'autorisation:
chmod a + x ~ / start.sh
Vous pouvez maintenant exécuter le programme dans votre terminal / yakuake ou tout ce que vous préférez utiliser:
~ / start.sh
et il démarrera le docky ~ / process_monitor.sh. Il sera donc démarré et redémarré en cas de plantage.
Vous pouvez choisir n'importe quel nom pour "process_monitor.sh" et "start.sh". Seul .sh est important. Mais assurez-vous de le changer également dans vos fichiers texte.
Accédez maintenant à votre tableau de bord, saisissez et ouvrez "Applications de démarrage".
Supprimer les autres paramètres de démarrage Docky définis
Créez-en un nouveau
Nom: Docky ou quel que soit le nom que vous voulez
Commande: / home / "votre nom d'utilisateur" /start.sh (pour moi par exemple /home/kevin/startup.sh)
Commentaire: tout ce que vous aimez.
Accédez à vos paramètres Docky et désactivez «Démarrer à la connexion»
Vous pouvez maintenant redémarrer votre ordinateur et le tester.
Pourquoi ne pas simplement créer un lien (symbolique) vers process_monitor.sh? Aucune modification de fichier ou modification d'autorisation n'est requise.
Réponses:
Tout d'abord, je n'utilise pas Docky. Mais je suppose que Docky est dans votre $ PATH. Sinon, spécifiez le chemin d'accès complet au binaire.
Voici l'utilisation impressionnante de Bash:
Commencez avec un fichier, tel que (vim au lieu de gedit si vous voulez):
gedit ~/process_monitor.sh
Tapez ce qui suit:
Enregistrez le fichier.
Définissez l'autorisation:
Vous pouvez maintenant exécuter un programme comme celui-ci:
et il lancera le programme une fois, et assurez-vous de redémarrer le programme si vous décidez de le quitter ou s'il se bloque.
Pour ajouter une entrée au démarrage du système afin qu'il lance le programme une fois connecté et ne s'arrêtera pas tant que vous ne quitterez pas, procédez comme suit:
/bin/bash ~/process_monitor.sh docky
Assurez-vous que la nouvelle entrée est cochée. Déconnectez-vous et connectez-vous et vous voyez Docky tout le temps.
la source
/bin/bash ~/process_monitor.sh docky
applications de démarrage, mais rien ne se passe. En fait, je vois la moitié d'une fenêtre de terminal clignoter à l'écran pendant une seconde après la connexion, mais c'est tout. Le script ne démarre pas même si j'ai ajouté cette commande aux applications de démarrage. Que devrais-je faire?Ceci est similaire à la méthode du moniteur de processus, utilisant une boucle jusqu'à, mais uniquement pour Docky lui-même.
Script simple:
Ensuite, supprimez docky de vos applications de démarrage et ajoutez simplement sh [chemin d'accès au fichier], tel que:
sh /usr/wegsehen/Scripts/docky.sh
la source
J'ai écrit un petit script "wrapper" ci-dessous. Il apparaîtra docky et le surveillera. Générez cela seul sans docky dans les applications de démarrage.
la source
Le ./process_monitor.sh fonctionne très bien.
Mais seulement si j'utilise Terminal, ou yakuake ... donc je peux juste ouvrir un nouveau shell, quand j'utilise "~ / process_monitor.sh docky" ou "/ bin / bash ~ / process_monitor.sh docky"
Mais si je vais dans les "Applications de démarrage", cliquez sur Ajouter et suivez ces instructions, rien ne se passe lorsque mon ordinateur démarre. Je dois encore exécuter cette commande manuellement. Et ça a gagné du travail, quand j'ai mis /home/"username"/process_monitor.sh docky aussi.
J'ai trouvé ou créé une solution (qui n'a pas été publiée quelque part) pour qu'elle démarre automatiquement.
Au lieu d'utiliser le docky ~ / process_monitor.sh, créez un nouveau fichier texte:
Vous pouvez maintenant exécuter le programme dans votre terminal / yakuake ou tout ce que vous préférez utiliser:
et il démarrera le docky ~ / process_monitor.sh. Il sera donc démarré et redémarré en cas de plantage.
Vous pouvez choisir n'importe quel nom pour "process_monitor.sh" et "start.sh". Seul .sh est important. Mais assurez-vous de le changer également dans vos fichiers texte.
Accédez maintenant à votre tableau de bord, saisissez et ouvrez "Applications de démarrage".
Vous pouvez maintenant redémarrer votre ordinateur et le tester.
Didacticiel vidéo
la source
process_monitor.sh
? Aucune modification de fichier ou modification d'autorisation n'est requise.ln -s process_monitor.sh start.sh
ouln -s ~/process_monitor.sh ~/Desktop/