Ejecute el script antes de cerrar

21

Cuando apago mi computadora, quiero mostrar algunas tareas pendientes que tengo que hacer antes de salir de la oficina ... Hice una aplicación local para administrar esas tareas, básicamente solo quiero ejecutar un comando y cerrar después de matar La aplicación ejecutada.

juanefren
fuente
Puede ser útil para futuros usuarios: askubuntu.com/a/747556/295286
Sergiy Kolodyazhnyy

Respuestas:

7

Puede agregar su comando al archivo /etc/gdm/PostSession/Defaultantes de la exit 0línea.

papa
fuente
Si voy a la opción "Cerrar sesión" se ejecuta bien, pero si presiono el botón de apagado aparece la pantalla de cierre de sesión púrpura ubuntu casi instantánea y ejecuta el script (en la pantalla donde aparece el logotipo de ubuntu con 5 bolitas). (probado con el sueño 20).
juanefren
El cuadro de diálogo "¿Está seguro de que desea cerrar" se encuentra aquí: / usr / lib / indicator-session / gtk-logout-helper y una parte del paquete de indicador-sesión está escrito en C / C ++, por lo que es bastante difícil editar. Es posible que tenga más suerte preguntando en alguna lista de
correo
6

Puede hacer esto creando un script en /etc/rc0.d (para apagar) y /etc/rc6.d (para reiniciar). Para hacer esto, ejecute:

gksu gedit /etc/rc0.d/K01mycustomscript

Edite su script de apagado en el editor de texto y luego ejecute:

sudo chmod +x /etc/rc0.d/K01mycustomscript

Y si quieres que se ejecute al reiniciar también ejecuta esto:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

Fuente: este hilo del foro

dv3500ea
fuente
Según su descripción, parece que quiere invocar una aplicación gráfica, por lo que necesita acceso al servidor x. En este caso, usar init-scripts no funciona.
sepp2k
1
Sí ... como dice @ sepp2k, el script se está ejecutando fuera de xserver :(
juanefren
4

Suena como una pregunta para superuser.com para mí. De todos modos, después de buscar en Google, encontré ¿Cómo ejecutar un script al cerrar sesión? que dice agregar el script a $ HOME / .bash_logout.

Si eso no funciona, agregue

$HOME/.bash_logout

a / etc / gdm / PostSession / Default para que ejecute el script de cierre de sesión correctamente.

Al ver que antes del apagado el usuario está desconectado de todos modos, esto debería cubrir ambas bases.

myusuf3
fuente
1
Dado que probablemente no quiere que el script se ejecute siempre, cierra la sesión de bash (es decir, cada vez que cierra una ventana de terminal), no creo que sea una buena idea escribir el comando en .bash_logout. Sin embargo, escribirlo en PostSession / Default me ​​parece una buena idea.
sepp2k
Ya tiene este archivo, pero parece que no está funcionando (I poner el sueño 20 y que no espere a la parada.)
juanefren
.bash_logout no se ejecutará cuando cierre una terminal, solo se ejecutará cuando cierre sesión en una sesión de inicio de sesión de terminal (es decir, si cierra sesión en un realTTY) y no cuando cierre sesión en gnome.
LassePoulsen
¿Por qué sería una pregunta para superusuario? Si la pregunta es sobre Ubuntu, está en el tema.
NN
2

Si lo hace, ./app-to-run && sudo shutdown -h nowla computadora debería apagarse una vez que la aplicación se ejecute.

Tommy Brunn
fuente
1
Este sería un cierre muy crudo. En su lugar, desea llamar al script de apagado del escritorio.
txwikinger
El sudo puede pedirle al usuario que escriba la contraseña en caso de que la aplicación para ejecutar sea lo suficientemente larga ... Por lo tanto, nunca se cerrará.
Samb
1

Casi la misma respuesta que Tommy Brunn pero sin correr el riesgo de que se le pida la contraseña de root:

sudo sh -c "./app-to-run; shutdown -h now"
samb
fuente