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:
Vaya a Unity Dash, escriba y busque "Aplicaciones de inicio"
Haga clic en Agregar
Nombre: Docky o lo que quieras
Mando: /bin/bash ~/process_monitor.sh docky
Comentario: lo que quieras
Asegúrese de que la nueva entrada esté marcada. Vuelva a cerrar sesión y verá a Docky todo el tiempo.
¿Qué sucede si estoy ejecutando Gnome 3 y no tengo "Aplicaciones de inicio" y quiero colocarlo en un archivo .desktop? ¿Qué pondría para la línea "Exec ="?
¡Gracias! También lo uso para Dropbox y Synergy. ¡Funciona genial!
guttermonk
El script funciona de manera excelente cuando lo ejecuto manualmente, pero lo he agregado /bin/bash ~/process_monitor.sh dockya 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?
Revetahw dice Reinstate Monica
@guttermonk ¿Puedes ofrecer alguna ayuda en mi consulta en el comentario anterior? He publicado esto como una pregunta separada también: askubuntu.com/questions/751465/…
Revetahw dice Reinstate Monica
1
Esto es similar al método de monitor de proceso, que usa un bucle hasta, pero solo para docky.
Script simple:
until docky; do
sleep 1
done
Luego, elimine docky de sus aplicaciones de inicio y simplemente agregue sh [ruta al archivo], como:
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: [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
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:
gedit ~ / start.sh
escriba siguiente
#! / bin / bash
~ / process_monitor.sh docky
hecho
Guardar el archivo
Establecer permiso:
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".
Eliminar la configuración de inicio de Docky establecida
Crea uno nuevo
Nombre: Docky o como quieras nombrarlo
Comando: / home / "tu nombre de usuario" /start.sh (para mí, por ejemplo, /home/kevin/startup.sh)
Comentario: lo que quieras.
Vaya a la configuración de Docky y desactive "Iniciar al iniciar sesión"
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:
Guarda el archivo.
Establecer el permiso:
Ahora puedes ejecutar un programa así:
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.
fuente
/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?Esto es similar al método de monitor de proceso, que usa un bucle hasta, pero solo para docky.
Script simple:
Luego, elimine docky de sus aplicaciones de inicio y simplemente agregue sh [ruta al archivo], como:
sh /usr/wegsehen/Scripts/docky.sh
fuente
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.
fuente
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:
Ahora puede ejecutar el programa en su terminal / yakuake o lo que prefiera usar:
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.
Videotutorial
fuente
process_monitor.sh
? No se requieren cambios de permisos o edición de archivos.ln -s process_monitor.sh start.sh
oln -s ~/process_monitor.sh ~/Desktop/