Raspberry Pi® a fondo para desarrolladores. Derek Molloy
Чтение книги онлайн.

Читать онлайн книгу Raspberry Pi® a fondo para desarrolladores - Derek Molloy страница 32

Название: Raspberry Pi® a fondo para desarrolladores

Автор: Derek Molloy

Издательство: Bookwire

Жанр: Математика

Серия:

isbn: 9788426727800

isbn:

СКАЧАТЬ ~ $ systemctl

      networking.service loaded active exited LSB: Raise network interfaces

      ntp.service loaded active running LSB: Start NTP daemon

      serial-getty@ttyAMA0 loaded active running Serial Getty on ttyAMA0

      ssh.service loaded active running OpenBSD Secure Shell server

      getty.target loaded active active Login Prompts ...

      El comando systemd uses archivos de servicio (service files), que presentan una extensión service, para definir el comportamiento de los diferentes servicios durante su inicio, apagado, recarga, etc. Véase el directorio /lib/systemd/system.

      El servicio del protocolo NTP (Network Time Protocol, protocolo de tiempo de red) se ejecuta por defecto con la propia instalación. El gestor systemd sirve para manejar tales servicios en el RPi. Por ejemplo, podemos identificar el número exacto del servicio y obtener su estado actual del siguiente modo:

      pi@erpi:~$ systemctl list-units -t service | grep ntp

      ntp.service loaded active running LSB: Start NTP daemon

      pi@erpi:~$ systemctl status ntp.service

      • ntp.service - LSB: Start NTP daemon

      Loaded: loaded (/etc/init.d/ntp)

      Active: active (running) since Mon 2016-01-02 13:00:48 GMT; 2h 21min ago

      Process: 502 ExecStart=/etc/init.d/ntp start (code=exited, status=0/ SUCCESS)

      CGroup: /system.slice/ntp.service

      ├─552 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:112

      └─559 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:112

      Podemos detener el servicio ntp con el comando systemctl, momento a partir del que dejará de actualizar el reloj con el tiempo de la red.

      pi@erpi:~$ sudo systemctl stop ntp

      pi@erpi:~$ systemctl status ntp

      • ntp.service - LSB: Start NTP daemon

      Loaded: loaded (/etc/init.d/ntp)

      Active: inactive (dead) since Mon 2017-01-02 17:42:26 GMT; 6s ago

      Process: 1031 ExecStop=/etc/init.d/ntp stop (code=exited, status=0/SUCCESS)

       Process: 502 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)

      Para reiniciar el servicio, ejecutamos:

      pi@erpi ~ $ sudo systemctl start ntp

      La tabla 3-1 ofrece un resumen de los comandos de systemd con la sintaxis del servicio ntp como ejemplo. Muchos de estos comandos exigen elevación a permisos de superusuario con el uso de sudo, como veremos en la sección siguiente.

      Tabla 3-1: Comandos habituales de systemd.

ComandoDescripción
systemctlLista todos los servicios en ejecución.
systemctl start ntpInicia un servicio. No persiste después de reiniciar.
systemctl stop ntpDetiene un servicio. No persiste después de reiniciar.
systemctl status ntpMuestra el estado del servicio.
systemctl enable ntpHabilita un servicio durante el arranque.
systemctl disable ntpImpide que un servicio se inicie durante el arranque.
systemctl is-enabled sshMuestra si un servicio se inicia durante el arranque.
systemctl restart ntpReinicia un servicio (lo detiene y lo vuelve a iniciar).
systemctl condrestart ntpReinicia un servicio solo si está en ejecución.
systemctl reload ntpCarga los archivos de configuración de un servicio sin detenerlo.
journalctl –fSiga el archivo de registro systemd. Pulsamos Control+C para salir.
hostnamectl --static set-hostname ERPiCambia el nombre del host.
timedatectl Muestra fecha y hora, así como la información de la zona horaria.
systemd-analyze timeMuestra la duración del arranque.

      El nivel de ejecución (runlevel) describe el estado actual del RPi y se puede utilizar para controlar los procesos o servicios iniciados por el sistema init. Bajo SysV hay diferentes niveles de ejecución, identificados como 0 (halt), 1 (single-user mode), 2 a 5 (multi-user modes), 6 (reboot) y S (start-up). Cuando el proceso init se inicia, el nivel de ejecución se inicia en N (none). Luego, entra en el nivel de ejecución S para inicializar el sistema en modo monousuario y, finalmente, pasa a uno de los modos multiusuario. Para averiguar el nivel de ejecución actual, escriba lo siguiente:

      pi@erpi ~ $ who -r

      run-level 5 2016-01-02 03:23

      En este caso, el RPi presenta un nivel de ejecución 5. Podemos cambiar el nivel de ejecución escribiendo init seguido del número del nivel. Por ejemplo, podemos reiniciar nuestro RPi escribiendo:

      pi@erpi ~ $ sudo init 6

      Como vemos, systemd conserva cierta compatibilidad hacia atrás con los niveles de ejecución de SysV y sus números, puesto que los antiguos comandos de SysV funcionan correctamente en systemd. No obstante, utilizar niveles de ejecución en systemd es una práctica considerada obsoleta. En su lugar, systemd utiliza objetivos con identificador (named target units), algunos de los cuales se listan en la tabla 3-2, que muestra las equivalencias con los niveles de ejecución SysV. Para identificar el objetivo con identificador predeterminado en cada momento en el RPi, escribimos:

      pi@erpi ~ $ systemctl get-default

      graphical.target

      Indica que la configuración actual exige que el RPi tenga un monitor para interfaz con ventanas. El comando siguiente le permite observar también la lista de unidades que el objetivo carga:

      pi@erpi ~ $ systemctl list-units --type=target

      UNIT LOAD ACTIVE SUB DESCRIPTION

      basic.target loaded active active Basic System

      cryptsetup.target loaded active active Encrypted Volumes

      getty.target loaded active active Login Prompts

      graphical.target loaded active active Graphical Interface

      multi-user.target loaded active active Multi-User System

      ...

      Tabla 3-2: Objetivos systemd junto con los niveles de ejecución de SysV.

Nombres de objetivoSysVDescripción y ejemplo de uso
poweroff.target0Detiene el sistema: estado de apagado para todos los servicios.
rescue.target1,SModo monousuario administrador: para funciones administrativas, por ejemplo comprobar el sistema de archivos.
multi-user.target2-4Modos estándar multiusuario sin monitor para interfaz con ventanas.
graphical.target5Modo estándar multiusuario con monitor para interfaz con ventanas.
reboot.target6Reinicia el sistema: estado de reinicio para todos los servicios.
emergency.targetShell СКАЧАТЬ