• El mundo es distinto ahora, pero los errores son los de siempre - Daniel Cantos Pardo
  • Era el primer viaje que realizaban sin tutor y saboreaban la libertad que con esa excitación que produce todo lo nuevo - Pablo Gonz
  • La falta de créditos retardó en tres años la partida de una verdadera expedición solarista - Stanislav Lem
  • El futuro ya está aquí, sólo que desigualmente repartido - W. Gibson
  • Me sentí como un punk que hubiera salido a comprar una navaja automática y volviera a casa con una pequeña bomba de neutrones - W. Gibson
  • A la mañana siguiente, realizaron su primer anochecer estelar - Diane Duane
  • —¿Un sol azul? —dijo Karellen, no muchas horas más tarde—. La identificación no puede ser muy difícil - Arthur C. Clarke
  • Aun así, en ese brillante interior había un núcleo oscuro, un indicio de algo encapsulado - Alastair Reynolds
  • El cielo sobre el puerto tenía el color de una pantalla de televisor sintonizado en un canal muerto - W. Gibson
  • Hace frío señor, en este campo —dijo el señor Tagomi—. Podemos regresar al centro de la ciudad en el helicóptero de la Misión, ¿le parece correcto? - Philip K. Dik
  • ¿Que es el ciberespacio? - El mundo - W. Gibson
  • Tengo sus anotaciones, estaban en su escritorio - Philip K. Dik
  • Esta formación constituye, en su totalidad, un desarrollo tridimensional de algún tipo de ecuación de orden superior - Stanislaw Lem
  • De nuevo la mezcla de rojo y verde, mirándole desde la naturaleza - Kim Stanley Robinson
  • Había un lugar en el Nostromo donde Dallas ocasionalmente encontraba algunos momentos de completa intimidad y al mismo tiempo se sentía razonablemente seguro. Era como una matriz artificial - Alan Dean Foster

CARGAR UN SCRIPT AL INICIO DEL SISTEMA CON SYSTEMD

Entrada escrita por: Fernando Lanero Barbero
Hoy te voy a contar cómo escribir un script para que arranque con el sistema haciendo uso de systemd.

Lo primero que tienes que tener en cuenta es saber dónde van a quedar ubicados tus scripts, que estarán en /etc/systemd/system

Como systemd controla otros aspectos del sistema operativo necesita un poco más de información. Con systemd, para invocar un script necesitas colocarlo como un demonio del sistema, por lo tanto tendrás que escribirlo de tal forma que systemd lo entienda.

Lo primero que tienes que tener en cuenta es la denominación del script, que debe tener esta estructura en su nombre: "ejemplo.service" Además, el fichero tendrá que tener los permisos -rwxr-xr-x

Para crear el contenido del script, puedes tomar como ejemplo el script que te dejo a continuación, que básicamente está compuesto de tres partes:

[Unit]
Description=okboard reset to avoid fails
After=syslog.target

[Service]
Type=forking
ExecStart=/home/nemo/ejemplo.sh

[Install]
WantedBy=multi-user.target

En la sección ExecStart=/home/nemo/ejemplo.sh se da la ruta en dónde realmente está el script a ejecutar.  Y el tipo de demonio que va a ser en:

[Service]
Type=forking


Por último, la sección [Install] nos dice en qué runlevel se ejecutará. En el modo multiusuario o en el clásico sysv, que sería el runlevel 3.

[Install]
WantedBy=multi-user.target


Con esto ya tenemos todo listo para agregar nuestro script al inicio del sistema.

Ahora haría falta configurar el script con las órdenes propiamente dichas para que systemd ejecute al inicio del sistema exactamente lo que quieres. Este script tendrá que tener una estructura como la que te expongo a continuación:

#!/bin/sh

#function: resetea Okboard

rm /home/nemo/.local/share/okboard/*

Este script, con permisos -rwxr-xr-x , deberá estar en la ruta y con el nombre que previamente hayamos configurado en ejemplo.service en el apartado

[Service]
ExecStart=/home/nemo/ejemplo.sh


Es fundamental que el script comience con

#!/bin/sh

para que systemd entienda que es un script ejecutable de bash en shell.

Una vez configurado todo, antes de ejecutar la nueva configuración, primero hay que refrescar systemd para que lea de nuevo los servicios

systemctl daemon-reload

Para levantar el nuevo script:

systemctl start ejemplo.service 

Esto iniciará el servicio (no debe mostrar errores).

Y para verificar que el servicio se esté ejecutando con normalidad:

systemctl status ejemplo.service 

Nos mostrará algo similar a lo siguiente:

ejemplo.service - Daemon  of example
          Loaded: loaded (/etc/systemd/system/ejemplo.service; enabled)
          Active: activating (start) since Tue, 00 Sep 2010 10:04:02 -0600; 9s xx
         Control: 23604 (lkl)
          CGroup: name=systemd:/system/ejemplo.service
                  └ 23604 /usr/sbin/example
Sep 04 22:04:02 xxx ejemplo[23604]:

Ahora que acabas de verificar que el servicio está activo, sólo queda habilitar el servicio para el autoarranque

systemctl enable ejemplo.service

Si todo va bien, el sistema devolverá el mensaje:

ln -s '/etc/systemd/system/okboard.service' '/etc/systemd/system/multi-user.target.wants/okboard.service'

Lo que indicará que todo está correcto.

Con esto ya tendrás tu script ejecutándose al inicio del sistema y homologado al esquema de systemd.

0 comentarios: