Herramientas de usuario

Herramientas del sitio


linuxbasico

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
linuxbasico [2019/04/16 09:05]
fmolinuevo [3.2. [ ] Proceso de arranque: init, runlevels, comandos: service, chkconfig, systemd, systemctl]
linuxbasico [2021/03/26 06:57] (actual)
fmolinuevo [3.2. [ ] Proceso de arranque: systemd, targets, comandos: systemctl, service, chkconfig]
Línea 257: Línea 257:
   * **var**: almacenamiento de datos variables   * **var**: almacenamiento de datos variables
  
-====  3.2.  [  ] Proceso de arranque: ​initrunlevels, comandos: service, chkconfig, systemd, systemctl ​====+====  3.2.  [  ] Proceso de arranque: ​systemdtargets, comandos: ​systemctl, ​service, chkconfig ====
  
-Un aspecto muy importante de los Linux es el sistema de arranque, el cual es simple, ​configurable,​ transparente y muy poderoso. El administrador puede personalizar y ajustar cada parte de este proceso con completa seguridad de que las cosas funcionarán como lo desea. De la misma manera, el proceso de apagado es configurable y adaptable a las necesidades de cada caso.+Un aspecto muy importante de los Linux es el sistema de arranque, el cual es configurable,​ transparente y muy poderoso. El administrador puede personalizar y ajustar cada parte de este proceso con completa seguridad de que las cosas funcionarán como lo desea. De la misma manera, el proceso de apagado es configurable y adaptable a las necesidades de cada caso.
  
-Hace unos años atrás, la mayoría de las distribuciones disponían de un sistema de inicio llamado SysVInit, que estaba basado en scripts Bash en su mayoría, para controlar cómo iniciaba ​un sistema ​Linux. Hoy eso fue reemplazado por SystemD, que agrega una capa de control de aplicaciones,​ procesos y usuarios, sobre el propio kernel, y que aprovecha los cgroups (control groups) disponibles en el kernel desde hace ya bastante tiempo.+Hace unos años atrás, la mayoría de las distribuciones disponían de un sistema de inicio llamado SysVInit, que estaba basado en scripts Bash en su mayoría, para controlar cómo iniciaba ​el sistema ​operativo. Hoy eso fue reemplazado por **systemd** (por System Daemon), que agrega una capa de control de aplicaciones,​ procesos y usuarios, sobre el propio kernel, y que aprovecha ​extensivamente ​los cgroups (control groups) disponibles en el kernel desde hace ya bastante tiempo
 + 
 +Debido a estos cambios, de los más importantes que han ocurrido en GNU/Linux en los últimos años, se hablará aquí de ambos sistemas de inicio, y se los comparará en cierta medida. El objetivo es que el alumno, si debe administrar sistemas viejos, tenga una idea de ambos, pueda compararlos y aprovecharlos.
  
 El proceso de inicio de un Linux puede resumirse de la siguiente manera: El proceso de inicio de un Linux puede resumirse de la siguiente manera:
Línea 268: Línea 270:
   - El manejador de inicio lanza la segunda fase desde el directorio /boot   - El manejador de inicio lanza la segunda fase desde el directorio /boot
   - Esta fase es la encargada de cargar el kernel en memoria, lo que cargará los módulos necesarios y montará la partición raíz en modo de sólo lectura   - Esta fase es la encargada de cargar el kernel en memoria, lo que cargará los módulos necesarios y montará la partición raíz en modo de sólo lectura
-  - El kernel transfiere el proceso de inicio al programa /​lib/​systemd/​systemd que tendrá el PID 1+  - El kernel transfiere el proceso de inicio al programa /​lib/​systemd/​systemd, y que tendrá el PID 1 (en sysvinit el PID 1 era /sbin/init)
   - Éste montará las particiones listadas en /etc/fstab, y cargará todos los servicios y herramientas de nivel de usuario   - Éste montará las particiones listadas en /etc/fstab, y cargará todos los servicios y herramientas de nivel de usuario
-  - Luego de finalizar estos procesos, se presentará al usuario una pantalla de ingreso+  - Luego de finalizar estos procesos, se presentará al usuario una pantalla de ingreso ​(login) 
 + 
 +Antiguamente Linux proveía lo que se llamaba runlevels, o niveles de ejecución, del 0 al 6, para configurar qué servicios y programas iniciaban o se detenían según el momento de ejecución del sistema. Esto es algo ya obsoleto, y systemd provee lo que se denomina **targets**. Los target pueden ser activados en paralelo, a diferencia de los runlevels que podían ocurrir uno por vez. 
 + 
 +Así entonces, tenemos varios targets que se corresponden en cierta medida a los antiguos runlevels:​ 
 + 
 +^ Target ^ Runlevel ^ Descripción ^ Comentarios ^  
 +| poweroff.target | 0 | Es el target que se inicia cuando se desea apagar el equipo | Es equivalente a: shutdown -h now | 
 +| rescue.target | 1, s, single | En este target se realizan tareas administrativas especiales, ya que ningún servicio estará corriendo |  | 
 +| multi-user.target | 2, 3, 4 | Multiusuario,​ no gráfico. Los usuarios normalmente pueden acceder por múltiples consolas o a través de la red |  | 
 +| graphical.target | 5 | Mulitusuario gráfico. Como el target anterior, pero con consola gráfica |  | 
 +| reboot.target | 6 | Reinicio del sistema | Es equivalente a: shutdown -r now | 
 +| emergency.target | emergency | Consola para emergencias |  | 
 + 
 +En systemd, se utiliza el comando **systemctl** para apagar o reiniciar el sistema, para iniciar, detener o reiniciar servicios y demonios, o para ver su estado. En los ejemplos que verán, pueden obviar la extensión como .target o .service, pues son optativas. 
 + 
 +Para apagar el equipo: 
 + 
 +  systemctl poweroff.target 
 + 
 +Para reiniciar el equipo: 
 + 
 +  systemctl reboot.target 
 + 
 +Para conocer cuál es el target por default del sistema, que puede variar según el uso que se le dé al equipo: 
 + 
 +  systemctl get-default 
 + 
 +Cambiar el target a emergency para realizar tareas de mantenimiento:​ 
 + 
 +  systemctl isolate emergency.target 
 + 
 +Luego de las tareas de mantenimiento,​ para volver al estado por default sin reiniciar el equipo: 
 + 
 +  systemctl default.target 
 + 
 +Detener el demonio SSH: 
 + 
 +  systemctl stop ssh.service 
 + 
 +Iniciar el demonio SSH: 
 + 
 +  systemctl start ssh.service 
 + 
 +Reiniciar el demonio SSH: 
 + 
 +  systemctl restart ssh.service 
 + 
 +Ver el estado de todos los servicios:​ 
 + 
 +  systemctl status 
 + 
 +Ver el estado del servicio MySQL: 
 + 
 +  systemctl status mysql.service 
 + 
 +Ver qué unidades han fallado al iniciar: 
 + 
 +  systemctl --failed 
 + 
 +Habilitar un servicio, deshabilitarlo o revisar su estado: 
 + 
 +  systemctl enable postgresql.service 
 +  systemctl disable postgresql.service 
 +  systemctl status postgresql.service
  
-Linux provee varios runlevels, del 0 al 6. Cada uno se utiliza para iniciar o detener servicios de manera automática. Así: 
  
-  * runlevel 0: halt. Es el runlevel que se inicia cuando se desea apagar el equipo +=== Comandos usados ​en SysV ===
-  * runlevel 1: single. En este nivel se realizan tareas administrativas especiales, ya que ningún proceso estará corriendo +
-  * runlevel 2: por defecto ​en Debian y derivados, tanto para modo de texto como modo gráfico +
-  * runlevel 3: por defecto en RedHat y derivados, para modo texto +
-  * runlevel 4: no se usa +
-  * runlevel 5: por defecto en RedHat y derivados, para modo gráfico +
-  * runlevel 6: restart. Se cambia a este runlevel cuando se desea reiniciar el equipo+
  
-Para controlar los diferentes runlevels, se utilizan los comandos **shutdown** y **telinit**,​ a saber:+Para controlar los diferentes runlevels, ​en SysV se utilizan los comandos **shutdown** y **telinit**,​ a saber:
  
   * shutdown: para apagar o reiniciar el equipo   * shutdown: para apagar o reiniciar el equipo
     * Reiniciar: shutdown -r now     * Reiniciar: shutdown -r now
     * Apagar: shutdown -h now     * Apagar: shutdown -h now
-  * telinit: para cambiar de runlevel. P. ej. para cambiar a runlevel 1: telinit 1+  * telinit: para cambiar de runlevel. P. ej. para cambiar a runlevel 1 para realizar tareas de mantenimiento: telinit 1
  
 Los servicios del sistema pueden iniciarse, reiniciarse y detenerse con el comando **service**. La configuración respecto a qué servicio se iniciará o detendrá automáticamente en los diferentes runlevels, se realiza con el comando **chkconfig**. Los servicios del sistema pueden iniciarse, reiniciarse y detenerse con el comando **service**. La configuración respecto a qué servicio se iniciará o detendrá automáticamente en los diferentes runlevels, se realiza con el comando **chkconfig**.
Línea 307: Línea 366:
   chkconfig --level 2345 sshd off   chkconfig --level 2345 sshd off
  
 +//Nota//: Estos comandos aún funcionan en las distribuciones modernas con systemd, pero siempre llaman a systemctl, y se debería dejar de usarlos
 ====  3.3.  [  ] Permisos, usuarios y grupos ==== ====  3.3.  [  ] Permisos, usuarios y grupos ====
  
Línea 343: Línea 403:
 ====  3.5.  [  ] Servidores: definición,​ demonios, posibilidades,​ iniciando y deteniendo demonios ==== ====  3.5.  [  ] Servidores: definición,​ demonios, posibilidades,​ iniciando y deteniendo demonios ====
  
-Además de al equipo físico, se llama **servidor** a un proceso que brinda servicios de diferente índole. También se lo denomina **demonio**.+Además de al equipo físico, se llama **servidor** a un proceso que brinda servicios de diferente índole. También se lo denomina **demonio**. Los demonios son ejecutables que pueden tomar distintos nombres según la distribución,​ pero que generalmente es el mismo código de una a otra.
  
-Ejemplos son los servicios Apache, Samba, NFS, Bind9, DHCP, y muchos otros. Así, el servicio HTTP provisto por Apache, es brindado por el demonio **httpd**; el servicio DNS ofrecido por Bind9, es brindado por el demonio **named**.+Ejemplos son los servicios Apache, Samba, NFS, Bind9, DHCP, y muchos otros. Así, el servicio HTTP provisto por Apache, es brindado por el demonio ​llamado ​**httpd** en Red Hat y derivados, mientras que en Debian y derivados se llama **apache2**; el servicio DNS ofrecido por Bind9, es brindado por el demonio **named** ​en las distribuciones derivadas de Red Hat, y **bind9** en las derivadas de Debian.
  
 El objetivo del servidor físico es centralizar la información,​ así como la configuración,​ de los servicios que son provistos a las estaciones cliente. El objetivo del servidor físico es centralizar la información,​ así como la configuración,​ de los servicios que son provistos a las estaciones cliente.
  
-En la mayoría de los Linuxes modernos, los servicios se controlan con el comando ​service.+En la mayoría de los Linuxes modernos, los servicios se controlan con el comando ​**systemctl** provisto por **systemd**.
  
-Para ver el estado ​de un servicio:+Para ver el estado ​del servicio ​SSH:
  
-  ​service sshd status+  ​systemctl ​status ​ssh
  
 Para detenerlo e iniciarlo: Para detenerlo e iniciarlo:
  
-  ​service sshd stop +  ​systemctl ​stop ssh 
-  ​service sshd start+  ​systemctl ​start ssh 
 + 
 +Si se desea deshabilitar o habilitar un servicio o demonio Apache al inicio del sistema, en Debian: 
 + 
 +  systemctl disable apache2 
 +  systemctl enable apache2 
 + 
 +Es importante recordar que el servicio, el nombre del demonio, puede variar de una distribución a otra.
  
 ====  3.6.  [  ] Servicios más comunes en un servidor: Samba, NFS, httpd, DHCP, proxy, firewall, SSH, mail, impresión, DNS, FTP, VPN, bases de datos, virtualización ==== ====  3.6.  [  ] Servicios más comunes en un servidor: Samba, NFS, httpd, DHCP, proxy, firewall, SSH, mail, impresión, DNS, FTP, VPN, bases de datos, virtualización ====
Línea 437: Línea 504:
   * Red Hat System'​s Administrator Guide: https://​access.redhat.com/​documentation/​en-US/​Red_Hat_Enterprise_Linux/​7/​html/​System_Administrators_Guide/​index.html   * Red Hat System'​s Administrator Guide: https://​access.redhat.com/​documentation/​en-US/​Red_Hat_Enterprise_Linux/​7/​html/​System_Administrators_Guide/​index.html
   * Filesystem Hierarchy Standard: http://​www.pathname.com/​fhs/​   * Filesystem Hierarchy Standard: http://​www.pathname.com/​fhs/​
 +  * Debian SystemD: https://​wiki.debian.org/​systemd
 +  * RedHat SystemD: https://​access.redhat.com/​documentation/​en-us/​red_hat_enterprise_linux/​7/​html/​system_administrators_guide/​chap-managing_services_with_systemd
 +  * ArchLinux SystemD: https://​wiki.archlinux.org/​index.php/​systemd
  
 =====  4. KDE ===== =====  4. KDE =====
Línea 846: Línea 916:
 === Rangos de direcciones IP privadas para cada clase === === Rangos de direcciones IP privadas para cada clase ===
  
-  ***Clase A**: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts) +  ***Clase A**: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts, 16777214 hosts disponibles), 1 red clase A 
-  ***Clase B**: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts). 16 redes clase B contiguas +  ***Clase B**: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts, 65534 hosts disponibles). 16 redes clase B contiguas 
-  ***Clase C**: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts). 256 redes clase C contiguas+  ***Clase C**: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts, 254 hosts disponibles). 256 redes clase C contiguas
  
 Si bien a bajo nivel la conexión entre equipos se realiza utilizando direcciones IP, para simplificar el trabajo humano y no tener que recordar los números de direcciones,​ se utilizan nombres de host y un sistema de resolución de nombres en su correspondiente dirección IP: Domain Name Service (DNS). Si bien a bajo nivel la conexión entre equipos se realiza utilizando direcciones IP, para simplificar el trabajo humano y no tener que recordar los números de direcciones,​ se utilizan nombres de host y un sistema de resolución de nombres en su correspondiente dirección IP: Domain Name Service (DNS).
Línea 869: Línea 939:
 # The primary network interface # The primary network interface
 auto eth0 auto eth0
-# iface eth0 inet dhcp 
 iface eth0 inet static iface eth0 inet static
     address 192.168.11.1     address 192.168.11.1
Línea 876: Línea 945:
     broadcast 192.168.11.255     broadcast 192.168.11.255
     dns-nameservers 192.168.11.11 192.168.11.12     dns-nameservers 192.168.11.11 192.168.11.12
-    dns-search ​fmsi+    dns-search ​axrglobal
     gateway 192.168.11.254     gateway 192.168.11.254
 +</​code>​
 +
 +Si se configura la interfaz con DHCP, el archivo interfaces se reduce a:
 +
 +<​code>​
 +# The loopback network interface
 +auto lo
 +iface lo inet loopback
 +
 +# The primary network interface
 +auto eth0
 +iface eth0 inet dhcp
 </​code>​ </​code>​
  
linuxbasico.1555416320.txt.gz · Última modificación: 2019/04/16 09:05 por fmolinuevo