meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| linux:procesos [2010/08/20 10:41] – lc | linux:procesos [2023/01/18 14:10] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | Una de las grandes ventajas de linux es la ejecución de procesos en background. Por ejemplo si sabemos que la copia de un fichero puede llevar mucho tiempo y no queremos estar esperando a que termine para seguir trabajando entonces podemos lanzarlo en background. Para ello añadimos **&** al comando que queramos lanzar por ejemplo: <code> cp archivo1 archivo2 &</code> | + | {{tag> |
| + | ===== Procesos en Background ===== | ||
| + | Una de las grandes ventajas de linux es la ejecución de procesos en background. Por ejemplo si sabemos que la copia de un fichero puede llevar mucho tiempo y no queremos estar esperando a que termine para seguir trabajando entonces podemos lanzarlo en background. Para ello añadimos **&** al comando que queramos lanzar por ejemplo: <sxh> cp archivo1 archivo2 &</sxh> | ||
| - | El proceso | + | Si hemos lanzado un comando y lo queremos |
| Con el comando **jobs**, podemos ver los procesos que están corriendo y sus posiciones | Con el comando **jobs**, podemos ver los procesos que están corriendo y sus posiciones | ||
| - | Un proceso | + | Supongamos |
| - | ejecutamos < | + | ==== Lanzar procesos con nohup ==== |
| - | ahora ejecutamos | + | Esto es útil si queremos lanzar procesos que no se terminen al matar el shell padre. Un claro ejemplo |
| + | <sxh>nohup proceso &</sxh> | ||
| + | Una buena practica sería redireccionar stdin, stdout y stderr, para: | ||
| + | - rastrear la salida de nuestro script en caso de producirse algún error | ||
| + | - evitar problemas al terminar nuestra sesión ssh | ||
| - | **Pongamos un ejemplo de lo anterior** | + | Por ejemplo: |
| + | < | ||
| + | ==== screen ==== | ||
| + | Si hemos lanzado algún proceso con nohup y & y en algún momento queremos volver a ver que está pasando, no podríamos . La única forma sería haber utilizado el comando | ||
| - | Supongamos que acabo de ejecutar | + | El proceso sería |
| + | * lanzamos el script que necesitamos como parámetro del comando | ||
| + | < | ||
| + | * Presionamos | ||
| + | * Cuando queramos volver a conectarnos a nuestro proceso, lo primero es saber el identificador del screen | ||
| + | < | ||
| + | < | ||
| + | root@bananapi: | ||
| + | There are screens on: | ||
| + | 24274.pts-0.bananapi | ||
| + | 2 Sockets in / | ||
| + | </ | ||
| + | * Para reconectarnos al proceso usamos el parámetro -r y el identificador | ||
| + | < | ||
| + | |||
| + | === Opciones | ||
| + | | ctrl + a y después d|Para salir| | ||
| + | | Ctrl.+a “| para ver las sesiones| | ||
| + | | Ctrl.+a n o [espacio]| se mueve hacia delante| | ||
| + | | Ctrl.+a p |se mueve hacia atrás| | ||
| + | |Ctrl.+a c |crea una nueva sesión| | ||
| + | |Ctrl.+a ? |ayuda| | ||
| + | |Ctrl.+a a |manda a un screen a lo que se está ejecutando| | ||
| + | |screen –ls |lista todos los screen abiertos| | ||
| + | |screen –x |si sólo hay uno abre ese. Si hay más de uno muetra una lista y entonces habría que hacer screen –x –r < | ||