Docky se cuelga de vez en cuando para mí. ¿Cómo puedo hacer que se reinicie automáticamente después de que se bloqueó?
Docky se cuelga de vez en cuando para mí. ¿Cómo puedo hacer que se reinicie automáticamente después de que se bloqueó?
Respuestas:
En primer lugar, no estoy usando docky. Pero supongo que Docky está en tu $ PATH. De lo contrario, especifique la ruta completa al binario.
Aquí está el increíble uso de Bash:
Comience con un archivo, como (vim en lugar de gedit si lo desea):
gedit ~/process_monitor.sh
Escriba lo siguiente:
#!/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
Guarda el archivo.
Establecer el permiso:
chmod a+x ~/process_monitor.sh
Ahora puedes ejecutar un programa así:
~/process_monitor.sh docky
e iniciará el programa una vez, y asegúrese de reiniciar el programa si alguna vez decide abandonarlo o decide bloquearse.
Para agregar una entrada al inicio del sistema para que inicie el programa una vez que haya iniciado sesión y no se detenga hasta que cierre, haga lo siguiente:
/bin/bash ~/process_monitor.sh docky
Asegúrese de que la nueva entrada esté marcada. Vuelva a cerrar sesión y verá a Docky todo el tiempo.
/bin/bash ~/process_monitor.sh docky
a las aplicaciones de inicio, pero no sucede nada. En realidad, veo que la mitad de una ventana de terminal parpadea en la pantalla por un segundo después de iniciar sesión, pero eso es todo. El script no se activa incluso si agregué ese comando a las aplicaciones de inicio. ¿Qué tengo que hacer?
Escribí un pequeño guión "envoltorio" a continuación. Engendrará docky y lo monitoreará. Genere esto solo sin docky en las aplicaciones de inicio.
#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: 1047481448@qq.com
# 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
El ./process_monitor.sh funciona muy bien.
Pero solo si uso Terminal, o yakuake ... para poder abrir un nuevo shell, cuando uso "~ / process_monitor.sh docky" o "/ bin / bash ~ / process_monitor.sh docky"
Pero si voy a "Aplicaciones de inicio", haga clic en Agregar y siga estas instrucciones, no sucede nada cuando mi computadora se está iniciando. Todavía tengo que ejecutar ese comando manualmente. Y ganó el trabajo, cuando puse en /home/"username"/process_monitor.sh docky, también.
Encontré o creé una solución (que no se ha publicado en alguna parte) para que se inicie automáticamente.
En lugar de usar el docky ~ / process_monitor.sh, cree un nuevo archivo de texto:
#! / bin / bash
~ / process_monitor.sh docky
hecho
chmod a + x ~ / start.sh
Ahora puede ejecutar el programa en su terminal / yakuake o lo que prefiera usar:
~ / start.sh
e iniciará el ~ / process_monitor.sh docky. Por lo tanto, se iniciará y se reiniciará si se bloquea.
Puede elegir cualquier nombre que desee para "process_monitor.sh" y "start.sh" solamente .sh es importante. Pero asegúrese de cambiarlo también en sus archivos de texto.
Ahora vaya a su Tablero, escriba y abra "Aplicaciones de inicio".
Ahora puede reiniciar su computadora y probarla.
process_monitor.sh
? No se requieren cambios de permisos o edición de archivos.