Respuestas:
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.
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
Desde Debian Jessie, el viejo init
programa ha sido reemplazado por systemd
!
Compruébalo tú mismo. Ejecutar: ls -l /sbin/init
y ver a qué apunta. En estos días apunta a systemd
( /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:*
Si se solicita un servicio con un nombre determinado pero no se encuentra el archivo de configuración de la unidad, systemd busca un script de inicio SysV con el mismo nombre ... y crea dinámicamente una unidad de servicio a partir de ese script. Esto es útil para la compatibilidad con SysV. Tenga en cuenta que esta compatibilidad es bastante completa pero no 100%.
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 general
man 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 comando
man journalctl
- Ver registro de lo que ha hecho systemd
man 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 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:
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
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