el título lo resume más o menos.
¿Cómo agrego un startup.sh y shutdown.sh de la aplicación de mi servidor a la secuencia de inicio y apagado del sistema operativo Debian?
En Debian, los scripts de inicio y apagado de servicio y aplicación deben colocarse en /etc/init.d/
.
Debian proporciona un script de ejemplo /etc/init.d/skeleton
que puede modificar a su gusto para su aplicación particular.
Una vez que esté en su lugar, llame al:
# update-rc.d YOURAPP defaults
Para que Debian agregue los /etc/rc?.d/
enlaces simbólicos por usted.
Si prefiere un menú o una interfaz gráfica, eche un vistazo al paquete sysv-rc-conf
o ksysv
.
Puede llamar a su script desde /etc/rc.local , antes de la línea que dice exit 0
En cuanto a cerrar su aplicación, sugeriría poner un script en /etc/rc0.d . Debe nombrarlo con una K mayúscula , y luego un número de 2 dígitos que especifique el orden en que se ejecutan estos scripts, y luego un nombre. Se llamará con un parámetro "stop", pero puede ignorar esto para un script de parada simple.
Para el inicio, mira esto .
Para el apagado, cree un enlace / copie su script en una de las carpetas /etc/rcX.d donde X es el nivel de ejecución en el que desea que se ejecute. 0 es el nivel de ejecución de cierre de Debian, creo.
fuente
Lo más fácil es modificar los scripts existentes, funciona en mi sistema, se usa para sonidos :)
/etc/init.d/rc.local
, agregar su sh al final del archivo, antes: (se ejecutará justo antes de iniciar sesión "pantalla")/etc/init.d/halt
, agregue su sh al comienzo del archivo, justo después de los comentarios iniciales (se ejecutará antes del comando de apagado real, que es llamado por este archivo de script/etc/init.d/reboot
fuente
Desde Debian Jessie, el viejo
init
programa ha sido reemplazado porsystemd
!Compruébalo tú mismo. Ejecutar:
ls -l /sbin/init
y ver a qué apunta. En estos días apunta asystemd
(/sbin/init -> /lib/systemd/systemd
), un programa de inicialización más nuevo y mejor.¡¡¡Así que las respuestas elegidas y otras aquí ahora están desactualizadas !!!
* Si bien aún puede instalar scripts a la antigua usanza con las herramientas de System-V, no es una buena idea en general.
man systemd.service
dice:*Para sistemas Debian más nuevos (es decir, Jessie, Stretch, Buster, etc.)
Es más fácil de lo que piensas. (-:
Este es el método nuevo y preferido para instalar programas de arranque o apagado.
Con
systemd
usted primero desea crear un archivo de unidad . Un archivo de unidad es principalmente declaraciones, no código.Luego usará el
systemctl
comando para habilitar o iniciar esa unidad.systemd
hace gran parte del trabajo por usted, lo que facilita, por ejemplo, que un programa crítico se reinicie automáticamente si se bloquea o si se mata. También cierra su programa dónde y cuándo debería, por defecto, sin trabajo adicional de su parte.Comience a aprender sobre
systemd
aquí:A partir de Debian y en otros lugares y etc y etc .
Páginas de manual para comenzar:
man systemd.unit
- Acerca de los archivos de la unidad en generalman systemd.service
- Acerca de los archivos de la unidad de servicio, por ejemplo, demonios y programas de ejecución única.man systemctl
- Interfaz de usuario de línea de comandoman journalctl
- Ver registro de lo que ha hecho systemdman systemd
- Sobre el programa init en síTambién hay una variedad de otros tipos de archivos unitarios, p. Ej.
man systemd.target
- Para grupos y objetivos comunes sincronizados.Una vez que haya digerido los conceptos básicos anteriores,
man -k systemd
busque para encontrar otras páginas de manual relacionadas.Hagas lo que hagas, en Debian no uses ninguno de estos :
update-rc.d
--instalar y eliminar enlaces de script de inicio de estilo System-Vsysv-rc-conf
- Configuración de nivel de ejecución para SysV como enlaces de script de iniciorunlevel
- Imprima el nivel de ejecución SysV anterior y actualBUM
- B oot U P M anager - un editor gráfico de nivel de ejecuciónsystemadm
- Interfaz gráfica para el administrador de sistemas y servicios systemd(Por cierto, el autor me dijo por correo electrónico que ahora está demasiado roto).
UN EJEMPLO:
Este archivo de unidad inicia el demonio NoIP.com cuando inicio, y lo cierra cuando lo apago.
Este demonio, de vez en cuando, envía mi dirección IP actual para actualizar mi DDNS ( D ynamic DNS ( D Omain N AME S erver)) base de datos del proveedor, lo que mantiene mi nombre de dominio que señala en la computadora dondequiera que vayan a.
Los archivos de esta unidad se encuentran en mi sistema en este archivo de configuración:
/etc/systemd/system/noip2.service
Esto es lo que hay en el archivo de la unidad:
Ejecute manualmente un archivo de unidad (por ejemplo, para pruebas):
$ sudo systemctl start noip2
.$ sudo systemctl restart noip2
.$ sudo systemctl stop noip2
.Configure el sistema para ejecutar automáticamente un archivo de unidad al iniciar o apagar:
$ sudo systemctl enable noip2
.$ sudo systemctl disable noip2
.Ver registro
$ sudo journalctl -u noip2
fuente