Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:cursos:pue:lpic2-2021:s3 [11/02/2021 07:04] – [systemV VS systemD] mateinfo:cursos:pue:lpic2-2021:s3 [18/09/2022 23:45] (actual) – [LPIC2 2021 Sesión 3 (2021-02-09) - procesos, kernel, systemd/] mate
Línia 1: Línia 1:
-= LPIC2 2021 Sesión 3 (2021-02-09) += LPIC2 2021 Sesión 3 (2021-02-09) - procesos, kernel, systemd/systemv, modulos 
-== Curso +== Documentación relacionada 200, 201, 202 
-=== Documentación relacionada 200, 201, 202 +  * Presentaciones/2020/201/200-Capacity Planning.pdf 
-    * Presentaciones/2020/201/200-Capacity Planning.pdf +  * Material Practicas LPIC-2/LPIC-201/1-Capacity Planning/Gestion de Procesos/2-Administracion Basica de Procesos.pdf 
-    * Material Practicas LPIC-2/LPIC-201/1-Capacity Planning/Gestion de Procesos/2-Administracion Basica de Procesos.pdf +  * Material Practicas LPIC-2/LPIC-201/1-Capacity Planning/Gestion de Procesos/Troubleshooting Active Processes.pdf 
-    * Material Practicas LPIC-2/LPIC-201/1-Capacity Planning/Gestion de Procesos/Troubleshooting Active Processes.pdf +  * Material Practicas LPIC-2/LPIC-201/1-Capacity Planning/Gestion de Procesos/3-Ejercicio Gestión de procesos y trabajos 
-    * Presentaciones/2020/201/201 - Linux Kernel.pdf +  * Material Practicas LPIC-2/LPIC-201/1-Capacity Planning/Gestion de Procesos/Limit CPU Usage with CPULimit.pdf (no hecho) 
-    * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/1-Introduccion al kernel de Linux.pdf +  * Presentaciones/2020/201/201 - Linux Kernel.pdf 
-    * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/2-Kernel en Linux.pdf +  * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/1-Introduccion al kernel de Linux.pdf 
-    * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/Laboratorion Compilar Kernel Linux.pdf +  * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/2-Kernel en Linux.pdf 
-    * Material Practicas LPIC-2/LPIC-201/3-System Startup/ +  * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/Laboratorion Compilar Kernel Linux.pdf 
-    /Presentaciones/2020/201/202 - Arranque del Sistema.pdf+  * Material Practicas LPIC-2/LPIC-201/3-System Startup/ 
 +  * Presentaciones/2020/201/202 - Arranque del Sistema.pdf
  
-=== procesos +=== otros documentos 
-==== ps+  * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/Compresión y descompresión de archivos.pdf -> [[linux:bash:tar#completo_incremental]] 
 +  * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/Gestion de Librerias Compartidas.pdf -> [[linux:librerias:start|]] 
 +  * Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/Udev para la detección y gestión de dispositivos en Linux.pdf 
 + 
 +== Clase 
 +=== ps
 El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el sistema de archivos /proc, es decir, lee directamente la información de los archivos que se encuentran en este directorio. El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el sistema de archivos /proc, es decir, lee directamente la información de los archivos que se encuentran en este directorio.
   * ''ps -efl | more''   * ''ps -efl | more''
Línia 27: Línia 33:
   * ''ps -eH'': muestra arbol de procesos   * ''ps -eH'': muestra arbol de procesos
  
-==== pstree+=== pstree
   * ''pstree -AGu'' -> deprecado, usar -> ''systemd-cgls''   * ''pstree -AGu'' -> deprecado, usar -> ''systemd-cgls''
   * aunque pstree está en la certificación   * aunque pstree está en la certificación
  
-==== kill+=== kill
 El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar procesos sino principalmente para enviar señales (signals) a los procesos El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar procesos sino principalmente para enviar señales (signals) a los procesos
   * ''kill l''   * ''kill l''
   * ''kill -9 pid'' ≡ ''kill -SIGKILL pid''   * ''kill -9 pid'' ≡ ''kill -SIGKILL pid''
  
-==== killall+=== killall
 El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez de indicar un PID se indica el nombre del programa, lo que afectará a todos los procesos que tengan ese nombre. El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez de indicar un PID se indica el nombre del programa, lo que afectará a todos los procesos que tengan ese nombre.
   * ''killall -HUP httpd'':manda una señal de "colgar", detenerse releer sus archivos de configuración y reiniciar   * ''killall -HUP httpd'':manda una señal de "colgar", detenerse releer sus archivos de configuración y reiniciar
   * ''killall -KILL -i squid'': manda señal de matar a todos los procesos squid pero pide confirmación en cada uno   * ''killall -KILL -i squid'': manda señal de matar a todos los procesos squid pero pide confirmación en cada uno
  
-==== nice/renice+=== nice/renice
 Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0.
   * ''nice -n <prioridad> <comando>''   * ''nice -n <prioridad> <comando>''
Línia 47: Línia 53:
   * ''renice <prioridad> <pid>'': cambia el nice de un proceso en ejecución   * ''renice <prioridad> <pid>'': cambia el nice de un proceso en ejecución
  
-==== nohup y &+=== nohup y &
 independiza el proceso lanzado desde la consola de la propia consola, le permite ser independiente independiza el proceso lanzado desde la consola de la propia consola, le permite ser independiente
   * ''nohup <comando>''   * ''nohup <comando>''
Línia 54: Línia 60:
   * ''$?'': código de salida del comando anterior ejecutado. 0 es todo correcto   * ''$?'': código de salida del comando anterior ejecutado. 0 es todo correcto
  
-==== jobs, fg, bg+=== jobs, fg, bg
 trabajos en background trabajos en background
   * **fg** foreground   * **fg** foreground
Línia 66: Línia 72:
   * ''ps -j'': procesos consola actual   * ''ps -j'': procesos consola actual
  
-==== time+=== time
 medir tiempo de ejecución de un comando/script medir tiempo de ejecución de un comando/script
   * ''time <comando>''   * ''time <comando>''
  
-==== pidof+=== pidof
 Este comando muestra el o los PID del programa invocado. Este comando muestra el o los PID del programa invocado.
   * ''pidof <programa>''   * ''pidof <programa>''
  
-==== pgrep+=== pgrep
 El comando pgrep muestra los identificadores de los procesos. El comando pgrep muestra los identificadores de los procesos.
   * ''pgrep <opciones> <programa>''   * ''pgrep <opciones> <programa>''
Línia 80: Línia 86:
     * ''-u <user>'': procesos de <user>     * ''-u <user>'': procesos de <user>
  
-=== kernel 201+== kernel
 ''/boot/vmlinuz*'': nuestro kernel compilado ''/boot/vmlinuz*'': nuestro kernel compilado
-==== compresión kernel (siempre gzip)+=== compresión kernel (siempre gzip)
   * zImage: tamaño máximo de 520KB   * zImage: tamaño máximo de 520KB
   * bzImage: sin límite de tamaño, para kernels grandes (big zImage)   * bzImage: sin límite de tamaño, para kernels grandes (big zImage)
Línia 89: Línia 95:
   * ''/usr/src/linux'' o ''/usr/src/linux''   * ''/usr/src/linux'' o ''/usr/src/linux''
   * ''/usr/src/linux/Documentation''   * ''/usr/src/linux/Documentation''
-==== versiones (https://www.kernel.org/)+=== versiones (https://www.kernel.org/)
   * mainline   * mainline
   * stable   * stable
Línia 95: Línia 101:
   * longterm   * longterm
  
-==== compilar+=== compilar
     * descargar el kernel     * descargar el kernel
     * fichero configuración kernel con opciones actuales: **/boot/config...**     * fichero configuración kernel con opciones actuales: **/boot/config...**
Línia 106: Línia 112:
     * ''make xconfig''     * ''make xconfig''
       * has de tener librerias gráficas para que funcione       * has de tener librerias gráficas para que funcione
-      * o usando emulador (en Windows) de unas X-Windows: ''export DISPLAY=<ip_remoto>:0.0'' +      * o usando emulador (en Windows) de unas X-Windows: 
-        * **xming X server**: [[https://sourceforge.net/projects/xming/]] +        * ''export DISPLAY=<ip_remoto>:0.0'' 
-          * **xlaunch** +        * servidores X: 
-        * [[https://hummingbird-exceed.software.informer.com/11.0/]]+          * **xming X server**: [[https://sourceforge.net/projects/xming/]] 
 +            * **xlaunch** 
 +          * [[https://hummingbird-exceed.software.informer.com/11.0/]]
     * ''make all && make modules install && make install''     * ''make all && make modules install && make install''
       * **make install** añade una nueva opción al grub -> **/boot/grub/menu.lst**       * **make install** añade una nueva opción al grub -> **/boot/grub/menu.lst**
Línia 116: Línia 124:
       * mrproper: Remove all generated files + config + various backup files       * mrproper: Remove all generated files + config + various backup files
  
-==== módulos+=== módulos
   * **%%*%%.ko**   * **%%*%%.ko**
   * **/lib/modules/kernel_version**   * **/lib/modules/kernel_version**
Línia 129: Línia 137:
   * **/etc/modprobe.d/**   * **/etc/modprobe.d/**
  
-==== parches de kernel+=== parches de kernel
   * descargar de la página el .bz o -gz   * descargar de la página el .bz o -gz
   * ''bzip2 -dc patch.... | patch -p1 --dry-run''   * ''bzip2 -dc patch.... | patch -p1 --dry-run''
   * ''unpatch''   * ''unpatch''
  
-==== mkinitrd && mkinitramfs+=== mkinitrd && mkinitramfs
 Un disco inicial de RAM es una colección de modulos críticos del kernel y de utilidades de sistema que el bootloader. Lee del disco y pasa al kernel en el momento del arranque. Un disco inicial de RAM es una colección de modulos críticos del kernel y de utilidades de sistema que el bootloader. Lee del disco y pasa al kernel en el momento del arranque.
  
Línia 141: Línia 149:
   * **/boot/initrd...img**   * **/boot/initrd...img**
  
-==== kernel panic+=== kernel panic
   * Hard: **Aieee!**   * Hard: **Aieee!**
   * Soft: **Ooops!**   * Soft: **Ooops!**
     * modificar **/etc/fstab** con algún error sintáctico     * modificar **/etc/fstab** con algún error sintáctico
  
-==== modificación parámetros kernel+=== modificación parámetros kernel
   * ''sysctl''   * ''sysctl''
     * ''sysctl <clave>'': lee el valor de la clave (separado por puntos)     * ''sysctl <clave>'': lee el valor de la clave (separado por puntos)
Línia 156: Línia 164:
   * **/etc/sysctl.d/**   * **/etc/sysctl.d/**
  
-=== systemV VS systemD +== systemV VS systemD 
-==== systemV+=== systemV 
 +  * es el más antiguo de los dos
   * **init ** es el primer proceso (PID=1)   * **init ** es el primer proceso (PID=1)
-  * runlevels (0-7+    * debian10 muestra **init** pero es **systemd** -> ''cat /proc/1/stat'', ''systemctl %%--%%version'' 
-    * servicios: se gestionan a través de **/etc/rcX.d/** (X representa el runlevel) +  * ''cat /etc/inittab'' <- en qur runlevel arraca la máquina 
-    * enlaces simbólicos a los servicios a arrancar o parar+  * cambio de runlevel en caliente: **init <runlevel>** o **telinit <runlevel>** 
 +  * **/etc/init.d/<servicio> <accion>** o **service <servicio> <accion>** 
 +  * runlevels (0-6
 +    * servicios: se gestionan a través de **/etc/rc.d/rcX.d/** (X representa el runlevel) 
 +    * enlaces simbólicos a los servicios a arrancar o parar (normalmente a **/etc/rc.d/init.d/**)
     * tienen un formato [S|K]DDNombre     * tienen un formato [S|K]DDNombre
     * si precede una **S**, el servicio se arranca     * si precede una **S**, el servicio se arranca
     * si precede una **K**, el sercicio se para     * si precede una **K**, el sercicio se para
     * **DD** establece el orden de arranque     * **DD** establece el orden de arranque
-      * si usamos **chkconfig** lee una línea del script chkconfig para obtener la información +    * para crear los servicios para que arranquen: 
-      * formato chkconfig <runlevels> <orden arranque> <orden parada> +      * crear los enlaces simbólicos correspondientes 
-    * ''chkconfig --add <servicio>'' +      * usar **chkconfig** 
-    * ''chkconfig --del <servicio>'' +        * si usamos **chkconfig** lee una línea del script chkconfig para obtener la información 
-    * ''chkconfig --list'' o ''service --status-all'' +          * formatochkconfig <runlevels> <orden arranque> <orden parada> 
-    * ''chkconfig --level <levels> servicio [on|off]'' +        * ''chkconfig %%--%%add <servicio>'' 
-    * cambio de runlevel: **init <runlevel>**+        * ''chkconfig %%--%%del <servicio>'' 
 +        * ''chkconfig %%--%%list'' o ''service --status-all'' 
 +        * ''chkconfig %%--%%level <levels> servicio [on|off]''
   * **/etc/rc.local**   * **/etc/rc.local**
     * script independiente del nivel de ejecución     * script independiente del nivel de ejecución
Línia 180: Línia 195:
  
 == TODO == TODO
-  - mirar documento **Recopilación de información de hardware**, sección /sys+  - <del>mirar documento **Recopilación de información de hardware**, sección /sys</del> -> [[linux:fsh:sys|]] 
 +  - <callout type="info" icon="true">Material Practicas LPIC-2/LPIC-201/2-Linux Kernel/Laboratorio Copia de seguridad y restauración GRUB.pdf</callout> 
 +    - GRUB 
 +    - MGR 
 +    - comando [[linux:bash:dd|]] 
 + 
 + 
 + 
 + 
  
  
Línia 187: Línia 211:
   * cgroups   * cgroups
   * [[https://www.raulprietofernandez.net/blog/hacking/como-crear-una-bomba-fork-para-gnu-linux-y-como-protegernos]]   * [[https://www.raulprietofernandez.net/blog/hacking/como-crear-una-bomba-fork-para-gnu-linux-y-como-protegernos]]
-  * ''ulimit''+  * ''ulimit'': muestra límites establecidos para el usuario (CPU, RAM, Procesos, ficheros...) 
 +    * [[https://linuxhint.com/linux_ulimit_command/]] 
 +    * **/etc/security/limits.conf** 
 +  * Emulador (en Windows) de unas X-Windows para Linux sin "gráficos": 
 +    * ''export DISPLAY=<ip_remoto>:0.0'' 
 +    * servidores X: 
 +      * **xming X server**: [[https://sourceforge.net/projects/xming/]] 
 +        * **xlaunch** 
 +      * [[https://hummingbird-exceed.software.informer.com/11.0/]]
  • info/cursos/pue/lpic2-2021/s3.1613055862.txt.gz
  • Darrera modificació: 11/02/2021 07:04
  • per mate