Cómo puedo configurar un servicio para que se ejecute al inicio

Tengo un demonio que funciona bien si lo inicio manualmente con el service comando:

ricardo@ricardo-laptop:~$ sudo service minidlna start                    * Starting minidlna minidlna                                                              [ OK ] 

pero no está configurado para iniciarse automáticamente cuando se reinicia la PC.

¿Cómo puedo configurarlo para que se inicie automáticamente, incluso si no hay nadie conectado a la PC?

sudo update-rc.d minidlna defaults

Esto debería agregar el servicio al sistema de inicio automático. Pero si consigues:

System start/stop links for /etc/init.d/minidlna already exist.

Haz el comando

sudo update-rc.d minidlna enable

P.D.: Para más detalles, consulte la página de manual de update-rc.d escribiendo el comando man update-rc.d

  • Para iniciar un demonio al inicio:

    update-rc.d service_name defaults
  • Quitar:

    update-rc.d -f service_name remove

>valores predeterminados = niveles de ejecución predeterminados 2, 3, 4 y 5

Ejemplo:

update-rc.d tomcat7 defaults

A veces es necesario ejecutar un script en el proceso de arranque, por ejemplo, ejecutar una configuración de iptables en el proceso de arranque. Por lo tanto, no tiene que ejecutar el script manualmente cada reinicio.

Puede ejecutar su script en el proceso de arranque en Ubuntu agregándolo a /etc/init.d/rc.local file. Mira los pasos a continuación.

  1. Abrir /etc/rc.local archivo con este comando:

    vim /etc/rc.local
  2. Agregue el script que desea ejecutar en el proceso de arranque allí, por ejemplo:

    sh /home/ivan/iptables.sh echo 'Iptable Configured!'
  3. Revise los comentarios incluidos en ese archivo y asegúrese de que haya un exit 0 al final.

  4. Guarde los archivos. Y su script se ejecutará en el proceso de arranque.

Desde Ubuntu 15.10 (resp. Debian 8 "jessie"), debe usar el siguiente comando para configurar su servicio minidlna para ejecutar al inicio:

sudo systemctl enable minidlna.service

Y para deshabilitarlo de nuevo para que no se inicie en el momento del arranque:

sudo systemctl disable minidlna.service

Esto funciona con todas las referencias de nombre de servicio que puede encontrar con ls /lib/systemd/system/*.service.

En la versión 18.04 TLS de Ubuntu, encontré esa actualización-rc.d no funciona bien si no hay un bloque de comentarios específico en el script de inicio que se vea así:

### BEGIN INIT INFO# Provides: myprogram# Required-Start: $ local_fs $ remote_fs $ syslog $ network $ time# Required-Stop: $ local_fs $ remote_fs $ syslog $ network# Default-start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: myprogram some description### END INIT INFO

@user154721 ¿Qué argumentos le diste a update-rc?¿cómo hacer que el arranque automático funcione?
He probado varias opciones pero no he tenido suerte.

Los programas de inicio automático se configuran en los manifiestosinicio automático ' o en*.servicio ’ archivos en varias ubicaciones, así como en init.d o crontab. Ver: upstart - How to start application after login on CentOS? - Unix & Linux Stack Exchange