[Solucionado] Imposible ejecutar script al apagar equipo en rc0.d

Comentarios sobre el buen funcionamiento del sistema y como personalizarlo a tus necesidades.

Moderadores: doc, mcun

Responder
pablomacri06
Forista Nuevo
Forista Nuevo
Mensajes: 31
Registrado: Jue Oct 17, 2013 5:47 pm

[Solucionado] Imposible ejecutar script al apagar equipo en rc0.d

Mensaje por pablomacri06 »

Amigos necesito ejecutar un script al apagar el equipo para poder enviar una señal de apagado a mis maquinas virtuales de Virtualbox.
Necesito que se ejecute dicho script al presionar el boton de power de la PC por ese motivo lo quiero ejecutar dentro de rc0.d para que se ejecute al gestionarse la orden de apagado, tanto desde el apagado del sistema como si presionara el boton del gabiente.

Mi sistema es un Debian 9 con xfce.

Mi script se encuentra en /etc/init.d/vmapagar
Con los siguientes permisos:

Código: Seleccionar todo

-rwxr-xr-x 1 root root  346 nov  7 13:08 vmapagar
Dicho script posee el siguiente codigo

Código: Seleccionar todo


#!/bin/sh

### BEGIN INIT INFO
# Provides:          vmapagar
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: ensure Samba daemons are started (nmbd, smbd and samba)
# Description: Starts Samba, a Windows AD and SMB/CIFS fileserver for UNIX
### END INIT INFO

#Es un simple echo para poder probar si funciona.
echo "fin" > /home/server/Escritorio/fin.txt
Dicho script tiene enlaces simbolicos a /etc/rc0.d. Tengo 3 enlaces al mismo archivo para ir probando cual funciona y ninguno lo hace. Dejo las propiedades de ambos enlaces.

Código: Seleccionar todo

lrwxrwxrwx 1 root root  20 nov  7 11:11 K99apagar -> /etc/init.d/vmapagar
lrwxrwxrwx 1 root root  18 nov  7 12:49 S20vmapagar -> ../init.d/vmapagar
lrwxrwxrwx 1 root root  20 nov  7 11:11 K01apagar -> /etc/init.d/vmapagar

No se porque no se ejecuta. Ya leí mil artículos y no me funciona nada.

Editado -- Mar Nov 07, 2017 11:38 pm --

También seguí exactamente los mismos pasos que dice aca: http://www.virtualhelp.me/linux/805-run ... t-shutdown
y tampoco funciona

Editado -- Mié Nov 08, 2017 6:50 pm --

RESUELTO
Dejo un instructivo de lo que hice para que funcione.

Ejecutar un Script al apagar/ reiniciar:

Todos los script deben ir alojados en /etc/init.d y sin la terminacion sh y deben ser ejecutados con la orden Stop o Start ejemplo service nuestroScript stop

Creamos el script

nano /etc/init.d/nuestroScript

Como dicho script se ejecuta con la orden Stop, su estructura debe ser similar a la siguiente

#!/bin/sh

### BEGIN INIT INFO
# Provides: log-shutdown
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Log shutdown date
### END INIT INFO

case "$1" in
start)
touch /var/lock/subsys/log-shutdown
;;
stop)
####ACA VA NUESTRO CODIGO QUE SE EJECUTARA CON LA SEÑAL STOP
date +%r > /home/server/Escritorio/stop.txt
sh /home/server/vmapagar.sh

;;
*)
echo "Usage: /etc/init.d/log-shutdown stop"
exit 1
;;
esac

Luego guardamos
Le damos permiso de ejecucion sudo chmod +x nuestroScript
Le damos propiedad root sudo chown root:root nuestroScript

instalamos la herramienta sysv-rc-conf la cual le dará de alta en el nivel de ejecución que deseemos.
Buscamos nuestro script y marcamos con la X donde queremos que se ejecute. Nivel 0 para el apagado Nivel 6 para reinicio.

Eso es todo.
En caso de no funcionar:
Le damos de baja al Script con update-rc.d nuestroScript remove
Eliminamos cualquier enlace a nuestro Script en /etc/rc0.d y en etc/rc6.d
Le damos de alta al Script con update-rc.d nuestroScript defaults
Ejecutamos sysv-rc-conf para volver a colocar el nivel de ejecución.

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje