App de Quibank: ya está en el App Store — gratis y sin conexión. Descargar ↗

23 Preguntas de Práctica de Procesos, paquetes, servicios y contenedores con Respuestas

Todas las preguntas de práctica de Procesos, paquetes, servicios y contenedores del Examen de práctica CompTIA Linux+, con la respuesta correcta y una breve explicación.

Comenzar examen de práctica →
  1. 1. En un host de monitoreo, la salida de ps muestra esta línea: "4271 4260 Z [collector] <defunct>". ¿Qué indica ese estado y qué lo elimina?

    • A.Terminó su ejecución, pero su estado de salida nunca fue recogido por el padre, así que señalar o reiniciar el padre lo elimina.✓ Respuesta
    • B.Fue suspendido por una señal de parada del terminal, así que enviarle una señal de continuación lo devuelve a la cola de ejecución.
    • C.Está bloqueado en suspensión ininterrumpible por un dispositivo, así que la entrada desaparece cuando termina la operación del kernel.
    • D.Está consumiendo CPU sin ceder el turno, así que enviarle kill -9 libera el espacio de proceso y borra la entrada.

    El estado Z señala a un hijo que ya terminó pero cuyo padre no ha leído su estado de salida con wait(), por lo que el kernel mantiene la entrada en la tabla de procesos. Un zombi ocupa un PID sin consumir CPU ni memoria y no se puede matar porque ya está muerto; la entrada se libera cuando el padre lo recoge, así que hay que señalar o reiniciar al padre, y si el padre termina, el PID 1 lo adopta y lo recoge.

    Ref. QB-ZQETS7Fuente: ps(1) manual page, PROCESS STATE CODES section; wait(2) on reaping child processesReportar un problema con esta pregunta

  2. 2. Un proceso de respaldo muestra STAT "D" en la salida de ps y no desaparece tras kill -9. ¿Por qué la señal no surte efecto?

    • A.Un proceso en suspensión ininterrumpible no atiende señales hasta que retorna la llamada al kernel que lo bloquea, así que SIGKILL queda pendiente.✓ Respuesta
    • B.SIGKILL puede ser capturada e ignorada por un proceso que instale su propio manejador, así que sigue corriendo hasta que se elimine.
    • C.Solo el padre del proceso puede entregarle SIGKILL, así que la señal se rechaza cuando la envía otro proceso.
    • D.SIGKILL surte efecto solo cuando el proceso sale del primer plano, así que hay que moverlo con bg antes.

    El estado D significa que la tarea está bloqueada dentro de una llamada al kernel, normalmente esperando un controlador o un sistema de archivos de red, y en ese punto no se revisan las señales pendientes. SIGKILL no puede capturarse ni ignorarse, pero solo se atiende cuando la tarea vuelve a ser interrumpible, así que lo que hay que resolver es la E/S subyacente.

    Ref. QB-H8MYC8Fuente: ps(1) PROCESS STATE CODES (state D); signal(7) on SIGKILL deliveryReportar un problema con esta pregunta

  3. 3. Tras editar el archivo de configuración de un demonio, un administrador quiere que el demonio en ejecución lo relea sin cortar las conexiones de clientes. ¿Qué señal se usa por convención y cuál es su número?

    • A.SIGTERM, señal 15, que es la que kill envía por omisión y pide al proceso que termine de forma ordenada.
    • B.SIGKILL, señal 9, que el kernel aplica de inmediato y no da al proceso ninguna opción de limpieza.
    • C.SIGHUP, señal 1, que muchos demonios interpretan como una petición de recargar su configuración.✓ Respuesta
    • D.SIGSTOP, señal 19, que congela el proceso donde está hasta que se le entregue una señal de continuación.

    SIGHUP indicaba originalmente un corte del terminal y, como un demonio no tiene terminal de control, se adoptó la convención de reutilizarla como petición de recarga, enviada con kill -HUP o kill -1. El proceso conserva su PID y sus sockets abiertos, que es justo lo que diferencia una recarga de un reinicio; si la unidad declara ExecReload, systemctl reload hace lo mismo.

    Ref. QB-2RS5Y8Fuente: signal(7) and kill(1); systemd.service(5) ExecReloadReportar un problema con esta pregunta

  4. 4. Un generador de informes con PID 4120 ya está en ejecución y deja sin CPU a las sesiones interactivas. El administrador quiere que el kernel lo planifique después del resto del trabajo. ¿Qué comando lo consigue?

    • A.renice -n 15 -p 4120, porque subir el valor de niceness baja la prioridad de planificación del proceso.✓ Respuesta
    • B.nice -n 15 -p 4120, porque nice modifica la niceness de un proceso que ya se encuentra en ejecución.
    • C.renice -n 0 -p 4120, porque devolver la niceness a su valor por omisión lo deja por debajo de lo interactivo.
    • D.renice -n -15 -p 4120, porque un valor de niceness negativo marca el proceso como trabajo de fondo.

    La niceness va de -20 a +19 y se mueve al contrario de la prioridad: cuanto mayor es la niceness, menos favorece el planificador al proceso. renice actúa sobre un proceso que ya corre, mientras que nice solo fija el valor al lanzar un comando nuevo, y un usuario sin privilegios puede subir la niceness pero no volver a bajarla.

    Ref. QB-E8JYU4Fuente: nice(1) and renice(1) manual pages; setpriority(2) on the niceness range -20 to 19Reportar un problema con esta pregunta

  5. 5. Un script de importación largo se inició en primer plano de una sesión SSH. El administrador debe cerrar la sesión y el script tiene que seguir corriendo. ¿Qué secuencia lo logra?

    • A.Ejecutar exec sobre el script para que sustituya al shell de acceso y nunca reciba el colgado al salir.
    • B.Pulsar Ctrl+Z y luego fg, que vuelve a conectar el trabajo al terminal para que siga corriendo tras cerrar la sesión.
    • C.Pulsar Ctrl+C, que separa el trabajo del terminal, y volver a conectarse a él más tarde por número con jobs.
    • D.Pulsar Ctrl+Z, ejecutar bg para reanudarlo en segundo plano y luego disown para que el shell no le mande el colgado.✓ Respuesta

    Ctrl+Z envía SIGTSTP y deja el trabajo en estado Stopped, bg lo reanuda en segundo plano, pero el shell sigue siendo su dueño y envía SIGHUP a sus trabajos al cerrar la sesión. disown lo quita de la tabla de trabajos del shell para que ese colgado nunca se entregue; lanzar el comando con nohup logra la misma separación desde el principio y redirige la salida a nohup.out.

    Ref. QB-XQQ5F5Fuente: bash(1) JOB CONTROL section and the disown builtin; nohup(1)Reportar un problema con esta pregunta

  6. 6. Un servicio no arranca y muestra "Address already in use" en el TCP 8080. ¿Qué comando identifica el proceso que ocupa ese puerto?

    • A.netstat -r, porque la tabla de rutas enumera los puertos locales que los procesos han reclamado.
    • B.lsof -i :8080, porque lsof informa de los archivos y sockets abiertos que mantiene cada proceso.✓ Respuesta
    • C.ps -ef | grep 8080, porque la tabla de procesos registra el puerto en escucha en la columna del comando.
    • D.strace -p 1, porque rastrear el PID 1 muestra todos los sockets que enlazaron sus servicios hijos.

    lsof enumera los descriptores de archivo abiertos por proceso y, como un socket en escucha es uno de ellos, lsof -i :8080 indica el PID, el usuario y el comando que ocupan el puerto; ss -ltnp responde lo mismo desde el lado del socket. Esa misma vista de descriptores es la que revela un archivo de registro borrado pero aún abierto que mantiene lleno el sistema de archivos mientras du muestra mucho menos.

    Ref. QB-F8WA26Fuente: lsof(8) manual page, -i option; ss(8)Reportar un problema con esta pregunta

  7. 7. Un crontab del sistema contiene la línea "30 2 * * 0 /usr/local/bin/backup.sh". ¿Cuándo se ejecuta este trabajo?

    • A.A las 02:30 del día 30 de cada mes, porque el primer campo es el día del mes.
    • B.A las 02:30 de cada domingo, porque los campos son minuto, hora, día del mes, mes y día de semana.✓ Respuesta
    • C.Cada media hora desde las 02:00 los domingos, porque un número suelto fija un intervalo.
    • D.A las 00:30 del segundo día de la semana, porque el campo inicial es la hora.

    La programación de crontab son cinco campos en orden fijo —minuto, hora, día del mes, mes y día de la semana— seguidos del comando, así que 30 y 2 son el minuto y la hora, y el 0 final es domingo. Un número suelto significa ese valor exacto; para un intervalo hace falta la sintaxis de paso, como */30 en el campo del minuto.

    Ref. QB-YQ3GM6Fuente: crontab(5) manual page, field order of the time specificationReportar un problema con esta pregunta

  8. 8. Un trabajo de mantenimiento diario debe ejecutarse una vez al día en un portátil que suele estar apagado de noche, y debe ejecutarse igualmente si se perdió un día. ¿Qué mecanismo sirve?

    • A.cron a una hora más tardía, porque cron deja en cola los trabajos perdidos y los ejecuta al volver.
    • B.at programado cada noche, porque at se vuelve a armar y dispara el trabajo vencido durante el apagado.
    • C.cron con una entrada @reboot, porque eso ejecuta el trabajo en cada arranque y a su hora habitual.
    • D.anacron, que registra en días la última ejecución y corre el trabajo vencido poco después del arranque.✓ Respuesta

    cron solo dispara un trabajo si el sistema está encendido en el momento programado y omite en silencio lo que se perdió, así que no sirve para una máquina apagada de noche. anacron trabaja con días completos, compara el periodo de su configuración con la marca de tiempo que guarda para cada identificador de trabajo y ejecuta lo vencido tras el arranque con el retardo configurado, por eso apunta a sistemas que no están encendidos todo el día.

    Ref. QB-M8PYVBFuente: anacron(8) and anacrontab(5) manual pages; cron(8)Reportar un problema con esta pregunta

  9. 9. Un trabajo nocturno se convirtió en un temporizador de systemd formado por report.timer y report.service. Las ejecuciones perdidas durante una parada deben recuperarse. ¿Qué hay que configurar y habilitar?

    • A.Poner Persistent=true en report.service y habilitar report.service, porque la unidad de servicio guarda su programación.
    • B.Poner Persistent=true en report.timer y habilitar report.timer, porque el temporizador guarda la programación que activa al servicio.✓ Respuesta
    • C.Poner OnBootSec en report.timer y habilitar report.service, porque el servicio debe habilitarse antes de ser llamado.
    • D.Poner AccuracySec en report.timer y habilitar ambas unidades, porque esa directiva registra la última activación.

    La programación reside por completo en la unidad .timer, y es el temporizador el que activa al servicio del mismo nombre, así que la unidad que se habilita es el temporizador y el servicio permanece inactivo hasta que se lo llama. Persistent=true guarda en disco la hora del último disparo y ejecuta el trabajo de calendario justo tras el arranque cuando su momento pasó con la máquina apagada, que es el equivalente en systemd a la recuperación de anacron.

    Ref. QB-5RU5GCFuente: systemd.timer(5), Persistent= and OnCalendar= directives; systemctl(1) list-timersReportar un problema con esta pregunta

  10. 10. Un script de respaldo funciona cuando el administrador lo ejecuta a mano, pero la ejecución programada por cron falla con "aws: command not found". ¿Cuál es la explicación?

    • A.cron quita el bit de ejecución a los scripts programados, así que hay que volver a marcarlo como ejecutable.
    • B.cron ejecuta cada trabajo con la cuenta nobody, así que el intérprete debe reinstalarse para esa cuenta.
    • C.cron da a los trabajos un entorno mínimo, así que el script debe usar rutas absolutas o fijar PATH.✓ Respuesta
    • D.cron carga solo los alias del shell de acceso, así que el script debe definir un alias por programa.

    Un trabajo de cron no se ejecuta dentro de un shell de acceso, por lo que nunca se leen el profile ni los archivos de inicio que construyen el PATH interactivo y el trabajo recibe solo el entorno reducido que da cron. La solución es invocar los programas por ruta absoluta, o fijar PATH y las variables necesarias al principio del script o en el propio crontab.

    Ref. QB-NCAVCTFuente: crontab(5) on the cron job environment and its default PATH; cron(8)Reportar un problema con esta pregunta

  11. 11. En un servidor de la familia Debian, un administrador instala un .deb descargado con dpkg -i y el paquete queda sin configurar por dependencias no satisfechas. ¿Cuál es el paso correcto?

    • A.Volver a ejecutar dpkg -i con --force-depends, porque repetir la instalación hace que dpkg baje las dependencias.
    • B.Ejecutar apt-cache show sobre el paquete, porque leer sus metadatos marca las dependencias como satisfechas.
    • C.Ejecutar dpkg --configure -a, porque las dependencias quedan registradas al reconstruir la base de paquetes.
    • D.Ejecutar apt --fix-broken install, porque la herramienta de alto nivel resuelve las dependencias faltantes desde los repositorios.✓ Respuesta

    dpkg es la herramienta de bajo nivel: actúa sobre el único archivo local que se le indica y puede informar de una dependencia no satisfecha, pero no conoce repositorios con los que resolverla. apt es el front end que resuelve dependencias leyendo los repositorios configurados, así que apt --fix-broken install descarga e instala lo que dpkg dejó pendiente; --force-depends solo oculta el problema y deja un paquete roto.

    Ref. QB-5V4QSSFuente: dpkg(1) and apt(8) manual pages; the --fix-broken install operationReportar un problema con esta pregunta

  12. 12. En un host de la familia Debian, ¿cuál es la diferencia entre apt update y apt upgrade?

    • A.update instala solo parches de seguridad y upgrade instala todo lo pendiente, incluido el kernel.
    • B.update refresca el índice local de paquetes desde los repositorios y upgrade instala versiones nuevas.✓ Respuesta
    • C.update reescribe /etc/apt/sources.list desde la lista de espejos y upgrade vuelve a bajar lo instalado.
    • D.update actualiza los paquetes de uno en uno y upgrade hace lo mismo sin pedir confirmación.

    apt update contacta los repositorios indicados en la configuración de fuentes de APT y reescribe el índice local de lo disponible, sin instalar nada; después apt upgrade usa ese índice para instalar versiones nuevas de los paquetes ya presentes. Ejecutar upgrade sin un update previo trabaja con un índice caducado, y full-upgrade se distingue además en que puede eliminar paquetes para completar la operación.

    Ref. QB-MCXH7SFuente: apt(8) manual page, update and upgrade subcommandsReportar un problema con esta pregunta

  13. 13. En un host de la familia RPM, un administrador necesita saber qué paquete instalado provee /usr/sbin/sshd y luego listar todos los archivos de ese paquete. ¿Qué par de comandos lo hace?

    • A.rpm -V /usr/sbin/sshd para nombrar el paquete dueño y luego rpm -qp para listar los archivos.
    • B.rpm -qi /usr/sbin/sshd para nombrar el paquete dueño y luego rpm -qa para listar los archivos.
    • C.rpm -qf /usr/sbin/sshd para nombrar el paquete dueño y luego rpm -ql para listar sus archivos.✓ Respuesta
    • D.rpm -qR /usr/sbin/sshd para nombrar el paquete dueño y luego rpm -qd para listar los archivos.

    rpm consulta la base de datos local de paquetes, donde -qf responde qué paquete instalado es dueño de una ruta de archivo y -ql lista los archivos que instaló un paquete. Las otras opciones responden preguntas distintas: -qi imprime información, -qa lista todos los paquetes instalados, -qp consulta un archivo .rpm no instalado, -qR lista requisitos y -V verifica archivos contra la base de datos.

    Ref. QB-4VRCMRFuente: rpm(8) manual page, query options -qf, -ql, -qi, -qa and -qpReportar un problema con esta pregunta

  14. 14. La instalación desde un repositorio RPM de terceros recién agregado falla con "Public key for pkg.rpm is not installed". ¿Cuál es la acción adecuada?

    • A.Poner gpgcheck=0 en el archivo del repositorio para que la instalación siga sin comprobación.
    • B.Importar con rpm --import la clave de firma del repositorio para poder verificar las firmas.✓ Respuesta
    • C.Instalar con --nogpgcheck esta vez, porque la clave importa solo en paquetes del fabricante.
    • D.Reconstruir la base de datos RPM, porque la falta de la clave indica un índice local dañado.

    gpgcheck indica al gestor de paquetes que verifique la firma de cada paquete con la clave pública del publicador, lo que demuestra que el paquete es auténtico y no se modificó desde que se firmó. Un mensaje de clave ausente significa que aún no se ha importado, así que hay que obtenerla del publicador por un canal de confianza e importarla; desactivar la verificación elimina el control en lugar de cumplirlo.

    Ref. QB-KCK72RFuente: dnf.conf(5) gpgcheck= and gpgkey= settings; rpm(8) --importReportar un problema con esta pregunta

  15. 15. systemctl is-active nginx devuelve "active" y systemctl is-enabled nginx devuelve "disabled". ¿Qué significa esa combinación?

    • A.El servicio corre ahora, pero no se iniciará de forma automática en el próximo arranque.✓ Respuesta
    • B.El servicio está configurado para arrancar al inicio, pero su proceso principal ya terminó.
    • C.El servicio corre con un archivo de configuración que no se ha recargado desde que cambió.
    • D.El servicio está enmascarado y corre solo porque otra unidad lo arrastró como dependencia.

    start y stop cambian lo que ocurre ahora mismo, mientras que enable y disable solo crean o quitan el enlace simbólico en el directorio .wants de un objetivo que hace que la unidad se active al arrancar. Por eso los dos estados son independientes —una unidad puede estar activa y deshabilitada, o inactiva y habilitada— y systemctl enable --now es lo que ajusta ambos a la vez.

    Ref. QB-3VD2FQFuente: systemctl(1), the start, enable, is-active and is-enabled commandsReportar un problema con esta pregunta

  16. 16. Hay que impedir por completo que un servicio heredado arranque: ni al inicio, ni a mano, ni cuando otra unidad lo declara como dependencia. ¿Qué acción lo consigue?

    • A.systemctl disable, que quita el enlace de arranque y también bloquea los arranques manuales.
    • B.systemctl stop, que termina el proceso y bloquea toda activación posterior de la unidad.
    • C.systemctl revert, que descarta los cambios locales y deja la unidad sin poder arrancar.
    • D.systemctl mask, que enlaza el nombre de la unidad a /dev/null para que ninguna petición pueda activarla.✓ Respuesta

    Enmascarar una unidad la sustituye por un enlace simbólico a /dev/null en el directorio administrativo de unidades, de modo que la unidad no puede cargarse y todo intento de arranque falla, venga del inicio, de un administrador o de la dependencia de otra unidad. disable solo quita el enlace de arranque y deja funcionando los arranques manuales y por dependencia, y systemctl unmask es lo que revierte el enmascarado.

    Ref. QB-JC8VUPFuente: systemctl(1), the mask and unmask commandsReportar un problema con esta pregunta

  17. 17. Una unidad del paquete en /usr/lib/systemd/system/app.service necesita un cambio de directiva, y el cambio debe sobrevivir a las actualizaciones del paquete. ¿Cuál es el enfoque correcto?

    • A.Agregar un drop-in en /etc/systemd/system/app.service.d/ y luego ejecutar systemctl daemon-reload.✓ Respuesta
    • B.Editar /usr/lib/systemd/system/app.service en su lugar y luego ejecutar systemctl daemon-reload.
    • C.Copiar la unidad a /run/systemd/system, editarla allí y luego ejecutar systemctl reload app.
    • D.Editar la unidad del paquete y ejecutar systemctl restart app, que relee los archivos de unidad.

    Las unidades se cargan con una precedencia fija en la que el directorio administrativo vence al de tiempo de ejecución y este al del paquete, y un archivo drop-in en <unit>.d/ sobrescribe solo las directivas que nombra mientras el archivo del proveedor sigue actualizándose. Todo cambio manual en archivos de unidad exige systemctl daemon-reload para surtir efecto, porque eso hace que systemd relea su configuración, y systemctl cat muestra el resultado combinado.

    Ref. QB-2V2Q9PFuente: systemd.unit(5) on unit load path precedence and drop-in directories; systemctl(1) daemon-reloadReportar un problema con esta pregunta

  18. 18. Tras un reinicio inesperado, journalctl -b -1 informa de que no existen archivos de journal del arranque anterior. ¿Qué lo explica y qué hace que esos registros estén disponibles en el futuro?

    • A.El journal vive en /run y se borra al reiniciar; poner Storage=persistent en journald.conf.✓ Respuesta
    • B.La opción -b lee solo el arranque actual; los anteriores se leen en /var/log/messages.
    • C.El journal fue rotado por logrotate al arrancar; hay que añadirle una directiva de retención.
    • D.El journal fue purgado por SystemMaxUse al inicio; subir ese límite conserva arranques viejos.

    Cuando el almacenamiento de journald es volátil, el journal reside en un directorio bajo /run, un sistema de archivos en memoria que se descarta al apagar, de modo que solo puede consultarse el arranque actual. Poner Storage=persistent en journald.conf (o crear el directorio del journal bajo /var/log) lleva el journal al disco y entonces -b -1 y los desplazamientos anteriores funcionan; el journal sigue siendo binario, así que hay que leerlo con journalctl y no con grep.

    Ref. QB-HCVHPNFuente: journald.conf(5) Storage= setting; journalctl(1) -b optionReportar un problema con esta pregunta

  19. 19. Un administrador debe revisar solo los mensajes de nivel error o peores de sshd.service registrados desde ayer. ¿Qué comando lo hace?

    • A.grep -i error /var/log/journal/*/system.journal | tail
    • B.journalctl --disk-usage -u sshd.service --since yesterday
    • C.journalctl -u sshd.service -p err --since yesterday✓ Respuesta
    • D.cat /run/log/journal/system.journal | grep sshd | grep err

    Los filtros de journalctl se combinan: -u limita la salida a una unidad, -p err muestra esa prioridad y todo lo más grave, y --since acepta expresiones relativas como yesterday además de marcas de tiempo. El journal se guarda en formato binario, así que grep o cat sobre sus archivos no es una forma válida de leerlo, y --disk-usage solo informa del espacio que ocupa.

    Ref. QB-ZUPC4NFuente: journalctl(1), the -u, -p and --since optionsReportar un problema con esta pregunta

  20. 20. Un contenedor de base de datos en un host de la familia RHEL con SELinux en modo enforcing pierde sus datos cada vez que se borra y se recrea, y un montaje enlazado de /srv/dbdata fue denegado con un mensaje AVC. ¿Qué opción de ejecución resuelve ambos problemas?

    • A.--privileged sin volumen, que conserva la capa de escritura entre borrados y evita las etiquetas.
    • B.--tmpfs /var/lib/pgsql junto con setenforce 0, que guarda los datos fuera del contenedor.
    • C.-v /srv/dbdata:/var/lib/pgsql:Z, que conserva los datos en el host y reetiqueta el montaje.✓ Respuesta
    • D.--network host con -v /srv/dbdata:/var/lib/pgsql:ro, que comparte las etiquetas del host.

    Todo lo que un contenedor escribe va a la capa de escritura fina apilada sobre la imagen de solo lectura, y esa capa se destruye con el contenedor, así que los datos persistentes deben residir en un montaje enlazado o un volumen con nombre. En un host con SELinux en enforcing, el directorio montado necesita además una etiqueta compatible, que el sufijo :Z aplica de forma privada para ese contenedor; desactivar enforcing o usar privilegios elimina la protección en lugar de cumplirla.

    Ref. QB-8EMP5BFuente: podman-run(1) --volume option, including the :z and :Z SELinux relabel suffixesReportar un problema con esta pregunta

  21. 21. Un contenedor de Podman sin raíz debe servir HTTP y se inicia con -p 80:80, lo que falla con un error de permisos en el puerto del host. ¿Qué lo explica y cuál es un ajuste correcto?

    • A.Los contenedores sin raíz no pueden publicar ningún puerto; ejecútelo con --network host.
    • B.Un usuario sin privilegios no puede enlazar puertos por debajo de 1024; publique -p 8080:80.✓ Respuesta
    • C.A la imagen le falta el puerto declarado; reconstrúyala con EXPOSE y mantenga -p 80:80.
    • D.SELinux bloquea el puerto 80 en contenedores; desactive el modo enforcing y deje -p 80:80.

    Publicar un puerto hace que el motor de contenedores enlace ese puerto en el host, y el rango de puertos bien conocidos por debajo de 1024 está reservado a procesos privilegiados, así que un motor sin raíz no puede reclamar el puerto 80. Mapear un puerto alto del host al puerto 80 del contenedor funciona de inmediato, y quien necesite de verdad el puerto bajo puede bajar el inicio de puertos no privilegiados con un parámetro del kernel o poner un proxy inverso en el host.

    Ref. QB-RWSUQBFuente: podman-run(1) --publish option; rootless Podman documentation and the net.ipv4.ip_unprivileged_port_start kernel parameterReportar un problema con esta pregunta

  22. 22. ¿Qué distingue una imagen de contenedor de un contenedor en ejecución?

    • A.La imagen es el árbol de procesos en marcha y el contenedor es el archivo del que se exportó.
    • B.La imagen guarda los datos escribibles y el contenedor guarda las capas de solo lectura bajadas.
    • C.La imagen se construye desde un Containerfile y el contenedor es ese mismo archivo ya etiquetado.
    • D.La imagen es una pila de capas de solo lectura y el contenedor añade encima una capa escribible.✓ Respuesta

    Una imagen es una pila inmutable de capas de sistema de archivos, una por instrucción de construcción, que muchos contenedores pueden compartir a la vez. Ejecutarla crea un contenedor que monta esas capas en solo lectura y añade una capa escribible fina para sus cambios; como esa capa se elimina con el contenedor, todo lo que deba sobrevivirle hay que escribirlo en un volumen montado.

    Ref. QB-7E9CY9Fuente: OCI Image Format Specification on image layers; podman-run(1) on the container writable layerReportar un problema con esta pregunta

  23. 23. Un contenedor llamado web está en ejecución y un administrador necesita un shell interactivo dentro de él para revisar su configuración. ¿Qué comando lo hace?

    • A.podman run -it web /bin/bash, que abre un shell dentro del contenedor que ya está corriendo.
    • B.podman start -it web /bin/bash, que se vuelve a conectar a él y sustituye su proceso principal.
    • C.podman exec -it web /bin/bash, que inicia un proceso adicional dentro del contenedor en marcha.✓ Respuesta
    • D.podman build -it web /bin/bash, que reconstruye la imagen y deja un shell abierto dentro de ella.

    exec lanza un proceso adicional dentro de un contenedor que ya está en marcha, por eso es la forma de obtener un shell para inspección y por eso falla en un contenedor detenido. run siempre crea un contenedor nuevo a partir de una imagen, start reanuda un contenedor detenido existente y no acepta un comando, y las opciones elegidas al ejecutar no pueden añadirse después: un contenedor que necesite otras opciones hay que borrarlo y volver a ejecutarlo.

    Ref. QB-QWEHJAFuente: podman-exec(1) and podman-run(1) manual pagesReportar un problema con esta pregunta

Otros temas de este examen

Preguntas de práctica redactadas según los objetivos publicados del examen CompTIA Linux+ y la práctica estándar de administración de Linux. CompTIA y Linux+ son marcas de CompTIA, y Linux es una marca registrada de Linus Torvalds; este sitio no está afiliado ni respaldado por CompTIA. El examen real combina preguntas de opción múltiple con preguntas basadas en desempeño que piden ejecutar una tarea en un entorno simulado: eso no puede reproducirse en un formato de cuatro opciones, así que este banco cubre la mitad teórica y conviene practicar en un sistema real en paralelo. CompTIA revisa y numera las versiones de los objetivos periódicamente: confirma los objetivos, el código de examen y los requisitos vigentes con CompTIA antes de examinarte. Sobre la certificación CompTIA Linux+ →