fore_background_desvincular_procesos_de_la_shell
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| fore_background_desvincular_procesos_de_la_shell [2020/12/25 22:57] – external edit 127.0.0.1 | fore_background_desvincular_procesos_de_la_shell [2024/02/13 17:16] (current) – [Conceptos básicos sobre entrada / salida estándar y redirecciones] busindre | ||
|---|---|---|---|
| Line 21: | Line 21: | ||
| El carácter "&" | El carácter "&" | ||
| - | Ejecutar un comando en segundo plano tiene como finalidad principal, el ejecutar un comando cuando el usuario necesita salir, pero cerrando la sesión, en inglés "log out" (pts: comando exit / ttys: comando logout). Si el usuario no hace ese "log out", si no que cierra la terminal de golpe, el proceso en segundo plano es también eliminado. | + | Ejecutar un comando en segundo plano tiene como finalidad principal, el ejecutar un comando cuando el usuario necesita salir, pero cerrando la sesión, en inglés "log out" (pts: comando exit / ttys: comando logout). Si el usuario no hace ese "log out", si no que cierra la terminal de golpe, el proceso en segundo plano es también eliminado. |
| + | |||
| + | Por defecto, en sistemas POSIX, la ejecución de un comando en segundo plano, con "&", | ||
| NOTA: Cuando hay procesos detenidos, la primera ejecución del comando " | NOTA: Cuando hay procesos detenidos, la primera ejecución del comando " | ||
| Line 244: | Line 246: | ||
| NOTA: No todos los procesos sobreviven al cerrar la terminal, pese a que se haya desvinculado, | NOTA: No todos los procesos sobreviven al cerrar la terminal, pese a que se haya desvinculado, | ||
| - | ==== Recuperar la salida de un comando que se ejecuta en segundo plano ==== | + | ==== Recuperar la salida |
| - | Si se cerro la terminal donde se puso un programa en segundo plano y además se desvinculó previamente, | + | Si se cerro la terminal donde se puso un programa en segundo plano y además se desvinculó previamente, |
| <code bash> | <code bash> | ||
| + | |||
| + | Usando Ggb también puede cambiarse el stdout (1) y stderr (2) de un proceso en ejecución. | ||
| + | <code bash> | ||
| + | # PID: XXXX | ||
| + | gdb -p XXXX | ||
| + | |||
| + | # Cambiar la salida estándar al fichero / | ||
| + | p (int)dup2((int)open("/ | ||
| + | # Redirige la salida de error a /dev/null. | ||
| + | p (int)dup2((int)open("/ | ||
| + | # Redireccionando con gdb la salida de error a la terminal virtual /dev/pts/3. | ||
| + | p (int)dup2((int)open("/ | ||
| ==== Conceptos básicos sobre entrada / salida estándar y redirecciones ==== | ==== Conceptos básicos sobre entrada / salida estándar y redirecciones ==== | ||
| Line 261: | Line 275: | ||
| comando << etiqueta # Toma la entrada para comando de las siguientes lineas, hasta una línea que tiene sólo etiqueta. | comando << etiqueta # Toma la entrada para comando de las siguientes lineas, hasta una línea que tiene sólo etiqueta. | ||
| comando 2>&1 # Envía la salida de error a la salida estándar (el 1 y el 2 pueden ser reemplazado por otro descriptor de fichero, p.e. 1>& | comando 2>&1 # Envía la salida de error a la salida estándar (el 1 y el 2 pueden ser reemplazado por otro descriptor de fichero, p.e. 1>& | ||
| - | comando &> fichero # Envía la salida estándar y de error a fichero; equivale a comando > fichero 2>&1 | ||
| comando <<< | comando <<< | ||
| + | |||
| + | comando &> fichero # Envía la salida estándar y de error a fichero; equivale a comando > fichero 2>&1 | ||
| + | comando >& fichero # Igual que le anterior, envía la salida estándar y de error a fichero; equivale a comando > fichero 2>&1 | ||
| # Redirigir salida estándar y/o salida de errores a la vez que se redirige a un fichero. | # Redirigir salida estándar y/o salida de errores a la vez que se redirige a un fichero. | ||
| Line 278: | Line 294: | ||
| parámetro : c | parámetro : c | ||
| </ | </ | ||
| + | |||
| + | ** Desactivar / Reactivar la salida estándar y/o de errores en scripts de forma global ** | ||
| + | |||
| + | <code bash># Redireccionar la salida estándar a /dev/null. | ||
| + | exec 1>/ | ||
| + | # Redireccionar la salida de errores a /dev/null. | ||
| + | exec 1>/ | ||
| + | # Redireccionar la salida estándar y de errores a /dev/null. | ||
| + | exec 1>/ | ||
| + | |||
| + | # Restaurar la entrada y salida estándar a su comportamiento normal. | ||
| + | exec >/ | ||
| + | |||
| **Tuberías y el uso de redirecciones**: | **Tuberías y el uso de redirecciones**: | ||
| Line 286: | Line 315: | ||
| </ | </ | ||
| + | **Redirecionar la salida a ficheros encontrados mediante el comando find**. | ||
| + | <code bash># En todos los ficheros encontrados agregará una linea en blanco y posteriormente una linea conteniendo variable: " | ||
| + | find . -type f -print0 | xargs -0 -i sh -c ' echo -e " | ||
| ==== Conceptos básicos sobre los IDs asociados a los procesos en Linux ==== | ==== Conceptos básicos sobre los IDs asociados a los procesos en Linux ==== | ||
fore_background_desvincular_procesos_de_la_shell.1608933466.txt.gz · Last modified: 2020/12/25 22:57 by 127.0.0.1
