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 [2018/02/28 13:05] – lc | linux:procesos [2023/01/18 14:10] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| {{tag> | {{tag> | ||
| ===== Procesos en Background ===== | ===== 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: <code> cp archivo1 archivo2 &</code> | + | 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 |
| - | + | ||
| - | Un proceso que este parado en background | + | |
| 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 | + | Por ejemplo: |
| - | + | < | |
| - | Supongamos que acabo de ejecutar el comando visudo para editar el fichero de permisos de sudo, pero en un momento | + | ==== screen ==== |
| + | Si hemos lanzado algún proceso con nohup y & y en algún | ||
| - | === Lanzar procesos con nohup === | + | El proceso sería el siguiente: |
| - | Esto es útil si queremos lanazar procesos | + | * lanzamos el script |
| - | <code>nohup proceso | + | < |
| + | * Presionamos | ||
| + | * Cuando queramos volver a conectarnos a nuestro proceso, lo primero es saber el identificador del screen | ||
| + | <sxh>screen -ls</ | ||
| + | < | ||
| + | root@bananapi: | ||
| + | There are screens on: | ||
| + | 24274.pts-0.bananapi | ||
| + | 2 Sockets in / | ||
| + | </ | ||
| + | * Para reconectarnos al proceso | ||
| + | < | ||
| + | === Opciones de screen === | ||
| + | | ctrl + a y después d|Para salir| | ||
| + | | Ctrl.+a | ||
| + | | 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 < | ||