LinuxParty
Si usted necesita algunas veces o siempre ciertos programas o scripts, este código comprueba si el programa o script se ha muerto! Momento en que volverá a ejecutarlo de nuevo.
Para estar seguros de esta función, basta con añadir el handler de bloqueo siguiente en la parte superior de la secuencia de comandos (antes de la funcionalidad del script principal):
También, puedes ver este código...

Para estar seguros de esta función, basta con añadir el handler de bloqueo siguiente en la parte superior de la secuencia de comandos (antes de la funcionalidad del script principal):
#!/bin/bash
######### Lock checker ###########
myName="`echo $0 | awk '{print $NF}' FS='/'`"
lockDir="/var/lock/"
lockFile=$lockDir$myName.pid
currentPID=$$
oldPID="`cat $lockFile`"
oldderExist=` kill -0 $oldPID 2>/dev/null ; echo $? `
if [ "$oldderExist" == "0" ]; then echo "An Other Instance Is Running...! PID:$oldPID" ; exit
else echo $currentPID > $lockFile
fi
######### Lock checker ###########
También, puedes ver este código...
#!/bin/bash
# don't use pid's they can be doubled in theory
# Under *nix, process IDs are usually allocated on a sequential basis,
# beginning at 0 and rising to a maximum value which varies from system to system.
# -- see: cat /proc/sys/kernel/pid_max
# Once this limit is reached, allocation restarts at 300 and again increases.
# meanwhile if another proccess taken your stored PID-ID you get a double but
# not the assumed proccess you where looking for!
# use the kernel random generator function instead, the odds of creating
# a few tens of trillions of UUIDs in a year and having one duplicate
uuidkey=`cat /proc/sys/kernel/random/uuid`
# better use /tmp for lockfiles, gets cleaned after reboot if tmpfs is used...
lockfile=/tmp/${0##*/}.lock
if test -f "$lockfile"
then
olduuid=`cat $lockfile |awk '{print $2}'`
if [ "$olduuid" == "$uuidkey" ]
then
# LoL, this can never be right, one chance in a ...
echo "This can't be right!, the same UUID's twice"
echo "new: $uuidkey"
echo "old: $olduuid"
else
gettimestamp=`cat $lockfile |awk '{print $1}'`
echo "There is a lockfile, created at: `date -d@$gettimestamp`"
exit 1
fi
else
echo "`date +%s` $uuidkey" > $lockfile
fi
# got here, put the rest of the script below...

-
Linux
- Zorin OS 18 supera el millón de descargas: el Linux más elegante conquista el escritorio Windows
- Woof: intercambie fácilmente archivos a través de una red local en Linux
- Usando systemctl para controlar systemd
- 🧰 Cómo reparar el error “Transport endpoint is not connected” en Linux (y por qué ocurre)
- Can’t read superblock: recuperando una partición con el primer superbloque dañado con Linux
- Comprobar el estado de salud del disco duro con Smartmontools, smartctl buscando sectores ilegibles
- 7 características y herramientas útiles de seguridad de Linux para principiantes
- Ejecutar Aplicaciones Gráficas Remotas en Local: Guía Completa en Linux
- Las 8 mejores herramientas para acceder a Linux por remoto
- Clientes de acceso remoto, desde y para el escritorio Linux
- ¡Histórico! Linux Supera el 6% de Cuota de Mercado en Escritorios: ¿El Año de Linux Ha Llegado?
- Woof: Compartir archivos/ficheros fácilmente en su LAN o red local, sin Samba, entre Linux, Mac, Windows, Android e iPhone



