[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente | ||
es:slackbook:process_control [2019/02/06 04:45 (UTC)] – [ps] rramp | es:slackbook:process_control [2019/02/26 22:33 (UTC)] – [Control de procesos] pedro.herrero | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | <note warning> | ||
<!-- Add your text below. Start with a Headline (see button bar above). --> | <!-- Add your text below. Start with a Headline (see button bar above). --> | ||
====== Control de procesos ====== | ====== Control de procesos ====== | ||
- | Los sistemas Slackware a menudo ejecutan cientos o miles de programas, cada uno de los cuales se conoce como un proceso. El manejo de estos procesos es una parte importante de la administración de sistemas. Entonces, ¿cómo manejamos exactamente todos estos procesos por separados? | + | Los sistemas Slackware a menudo ejecutan cientos o miles de programas, cada uno de los cuales se conoce como un proceso. El manejo de estos procesos es una parte importante de la administración de sistemas. Entonces, ¿cómo manejamos exactamente todos estos procesos por separado? |
===== ps ===== | ===== ps ===== | ||
Línea 48: | Línea 47: | ||
Los ejemplos anteriores usan la sintaxis estándar de //**ps**//, pero mucha más información puede se descubierta si usamos la sintaxis BSD. Para hacerlo, debemos utilizar el argumento //aux//. | Los ejemplos anteriores usan la sintaxis estándar de //**ps**//, pero mucha más información puede se descubierta si usamos la sintaxis BSD. Para hacerlo, debemos utilizar el argumento //aux//. | ||
- | < | ||
- | syntax, but much more information can be discovered if we use BSD | ||
- | syntax. In order to do so, we must use the //aux// argument. | ||
- | </ | ||
Línea 72: | Línea 67: | ||
- | Como puedes | + | Como puede ver, la sintaxis BSD ofrece mucha más información, |
- | < | + | |
- | user controls the process and what percentage of RAM and CPU the process | + | |
- | is consuming when //**ps**// is run.</ | + | |
Para lograr una parte de esto, en función del proceso, //**ps**// permite que se proporcionen uno o más ID de proceso (PIDs) en la línea de comando, y posee el argumento ' | Para lograr una parte de esto, en función del proceso, //**ps**// permite que se proporcionen uno o más ID de proceso (PIDs) en la línea de comando, y posee el argumento ' | ||
- | |||
- | < | ||
- | one or more process IDs (PIDs) to be provided in the command line, and has the ' | ||
- | to show a particular attribute of the PID. | ||
- | </ | ||
- | |||
< | < | ||
Línea 92: | Línea 78: | ||
</ | </ | ||
- | Lo que se muestra es el nombre del comando PID's (cmd) y su tiempo transcurrido (etime). | + | Lo que se muestra es el nombre del comando PID's (cmd) y su tiempo transcurrido (etime). El PID en este ejemplo, es una variable shell para el PID de la shell actual. Como se puede observar en este ejemplo, el proceso de shell ha existido durante 12 minutos, 22 segundos. |
- | El PID en este ejemplo, es una variable shell para el PID de la shell actual. Como puede se puede observar en este ejemplo, el proceso de shell ha existido durante 12 minutos, 22 segundos. | + | |
Línea 120: | Línea 105: | ||
En este ejemplo, una ejecución de sub-shell usando // | En este ejemplo, una ejecución de sub-shell usando // | ||
- | Finalmente, //**ps**// puede también crear un árbol de procesos. Esto te muestra que procesos tienen procesos hijos. Terminar un proceso padre que posee hijos también termina los procesos hijos que posea. Se puede hacer esto empleando el argumento //-ejH//. | + | Finalmente, //**ps**// puede también crear un árbol de procesos. Esto muestra que procesos tienen procesos hijos. Terminar un proceso padre que posee hijos también termina los procesos hijos que posea. Se puede hacer esto empleando el argumento //-ejH//. |
- | < | + | |
- | Finally, //**ps**// can also create a process tree. | + | |
- | This shows you which processes have children processes. Ending the | + | |
- | parent of a child process also ends the child. We do this with the | + | |
- | //-ejH// argument.</ | + | |
Línea 144: | Línea 124: | ||
</ | </ | ||
- | Como se observa, // | + | Como se observa, // |
- | < | ||
- | tool for determining not only what processes are currently active on | ||
- | your system, but also for learning lots of important information about | ||
- | them. | ||
- | </ | ||
Como es el caso con muchas de las aplicaciones, | Como es el caso con muchas de las aplicaciones, | ||
- | < | ||
- | is // | ||
- | </ | ||
Línea 181: | Línea 153: | ||
La gestión de los procesos no solo consiste en saber cuáles se están ejecutando, sino también en comunicarse con ellos para cambiar su comportamiento. La forma más común de administrar un programa es terminarlo. Por lo tanto, la herramienta para el trabajo se llama // | La gestión de los procesos no solo consiste en saber cuáles se están ejecutando, sino también en comunicarse con ellos para cambiar su comportamiento. La forma más común de administrar un programa es terminarlo. Por lo tanto, la herramienta para el trabajo se llama // | ||
- | < | + | |
- | also about communicating with them to change their behavior. The most | + | |
- | common way of managing a program is to terminate it. Thus, the tool for | + | |
- | the job is named // | + | |
- | // | + | |
- | but sends signals to them. The most common signal is a SIGTERM, which | + | |
- | tells the process to finish up what it is doing and terminate. There | + | |
- | are a variety of other signals that can be sent, but the three most | + | |
- | common are SIGTERM, SIGHUP, and SIGKILL.</ | + | |
Lo que hace un proceso cuando recibe una señal varía. La mayoría de los programas terminarán (o intentarán terminar) cada vez que reciban una señal, pero hay algunas diferencias importantes. | Lo que hace un proceso cuando recibe una señal varía. La mayoría de los programas terminarán (o intentarán terminar) cada vez que reciban una señal, pero hay algunas diferencias importantes. | ||
- | < | ||
- | will terminate (or attempt to terminate) whenever they receive any | ||
- | signal, but there are a few important differences.</ | ||
- | |||
- | Para empezar, la señal SIGTERM informa al proceso que debe terminarse a sí misma lo antes posible. Esto le da tiempo al proceso para finalizar cualquier actividad importante, como escribir información en el disco, antes de que se cierre. En contraste, la señal SIGKILL le dice al proceso que se termine de inmediato, sin preguntas. | ||
- | Esto es más útil para matar procesos que no responden y, en ocasiones, se denomina //" | ||
- | |||
- | < | ||
- | for killing processes that are not responding and is sometimes called | ||
- | the //" | ||
- | receive it. | ||
- | </ | ||
+ | Para empezar, la señal SIGTERM informa a el proceso que debe terminarse a sí mismo lo antes posible. Esto le da tiempo al proceso para finalizar cualquier actividad importante, como escribir información en el disco, antes de que se cierre. En contraste, la señal SIGKILL le dice al proceso que se termine de inmediato, sin preguntas. | ||
+ | Esto es más útil para matar procesos que no responden y, en ocasiones, se denomina //" | ||
Para señalar un proceso, primero necesitamos saber cual es el PID. Esto se puede obtener con //**ps**// como se discutió previamente. | Para señalar un proceso, primero necesitamos saber cual es el PID. Esto se puede obtener con //**ps**// como se discutió previamente. | ||
Para enviar diferentes señales a un proceso en ejecución, simplemente pase el número de señal y //-s// como un argumento. | Para enviar diferentes señales a un proceso en ejecución, simplemente pase el número de señal y //-s// como un argumento. | ||
El argumento //-l// lista todas las señales que tu puedes elegir y sus números. | El argumento //-l// lista todas las señales que tu puedes elegir y sus números. | ||
También puede enviar señales por su nombre con //-s//. | También puede enviar señales por su nombre con //-s//. | ||
- | |||
- | <del> | ||
- | In order to signal a process, we first need to know it's PID. You can | ||
- | get this easily with //**ps**// as we discused. | ||
- | In order to send different signals to a running process, you simply pass | ||
- | the signal number and //-s// as an argument. | ||
- | argument lists all the signals you can choose and their number. You can | ||
- | also send signals by their name with // | ||
Línea 246: | Línea 192: | ||
</ | </ | ||
===== top ===== | ===== top ===== | ||
- | Hasta ahora hemos aprendido cómo mirar los procesos activos por un momento, pero ¿y si queremos monitorearlos durante un periodo de tiempo prolongado? // | + | Hasta ahora hemos aprendido cómo mirar los procesos activos por un momento, pero ¿y si queremos monitorearlos durante un periodo de tiempo prolongado? // |
- | < | + | |
- | So far we've learned how to look at the active processes for a moment | + | |
- | in time, but what if we want to monitor them for an extended period? | + | |
- | //**top**//(1) allows us to do just that.</ | + | |
- | + | ||
- | Muestra | + | |
De forma predeterminada, | De forma predeterminada, | ||
- | < | + | |
- | vital information about them, and updates periodically. By default, | + | |
- | processes are ordered by their CPU percentage and updates occur every | + | |
- | three seconds. | + | |
- | </ | + | |
Línea 290: | Línea 226: | ||
La página del manual tiene detalles útiles sobre cómo interactuar con // | La página del manual tiene detalles útiles sobre cómo interactuar con // | ||
- | < | + | |
- | The man page has helpful details on how to interact with | + | |
- | //**top**// such as changing its delay interval, the | + | |
- | order processes are displayed, and even how to terminate processes | + | |
- | right from within //**top**// itself.</ | + | |
===== cron ===== | ===== cron ===== | ||
Línea 300: | Línea 232: | ||
cron corre procesos para todos los usuarios en la fecha prevista. | cron corre procesos para todos los usuarios en la fecha prevista. | ||
Esto lo hace muy útil para los procesos que deben ejecutarse periódicamente, | Esto lo hace muy útil para los procesos que deben ejecutarse periódicamente, | ||
- | < | + | |
- | processes on our system and means of signalling them, but what if we | + | |
- | want to run a process periodically? | + | |
- | just the thing, **// | + | |
- | processes for every user on the schedule that user demands. This makes | + | |
- | it very useful for processes that need to be run periodically, | + | |
- | don't require full daemonization, | + | |
- | </ | + | |
Todos los usuarios tienen su propia entrada en la base de datos de cron. | Todos los usuarios tienen su propia entrada en la base de datos de cron. | ||
Por lo tanto, los usuarios que no tienen privilegios de administrador también pueden correr procesos periódicamente. | Por lo tanto, los usuarios que no tienen privilegios de administrador también pueden correr procesos periódicamente. | ||
- | |||
- | < | ||
Con el fin de correr programas desde el cron, necesitaras usar el **// | Con el fin de correr programas desde el cron, necesitaras usar el **// | ||
La página del manual enumera una variedad de formas de hacer esto, pero el método más común es empleando el argumento //-e//. | La página del manual enumera una variedad de formas de hacer esto, pero el método más común es empleando el argumento //-e//. | ||
- | < | + | Esto bloqueará la entrada del usuario en la base de datos de cron (para evitar que otro programa |
- | **// | + | |
- | ways to do this, but the most common method is to pass the | + | |
- | //-e// argument.</ | + | |
- | Esto bloqueará la entrada del usuario en la base de datos de cron (para evitar que otro programa | + | |
- | < | + | |
En sistemas Slackware, típicamente el editor es **//vi//**. Antes de continuar, es posible que usted necesite consultar el capitulo de **//vi//**. | En sistemas Slackware, típicamente el editor es **//vi//**. Antes de continuar, es posible que usted necesite consultar el capitulo de **//vi//**. | ||
- | < | ||
- | </ | ||
- | |||
Las entradas de la base de datos de cron pueden parecer un poco arcaicas al principio, pero son muy flexibles. Cada línea descomentada es procesada por **// | Las entradas de la base de datos de cron pueden parecer un poco arcaicas al principio, pero son muy flexibles. Cada línea descomentada es procesada por **// | ||
- | < | ||
- | are highly flexible. Each uncommented line is processed by | ||
- | **// | ||
- | all the time conditions match.</ | ||
Línea 343: | Línea 254: | ||
Como se menciono anteriormente, | Como se menciono anteriormente, | ||
Así que, a partir del ejemplo anterior el comando es //"/ | Así que, a partir del ejemplo anterior el comando es //"/ | ||
- | < | ||
- | to understand at first, so let's look at each part individually. From | ||
- | left to right, the different sections are: Minute, Hour, Day, Month, | ||
- | Week Day, and Command. Any asterisk < | ||
- | every minute, hour, day, and so on. So from the example above, the | ||
- | command is //"/ | ||
- | it runs every weekday or every week of every month at 2:30 a.m.</ | ||
**// | **// | ||
- | |||
- | < | ||
- | any output the command generates. For this reason, many tasks have | ||
- | their output redirected to ''/ | ||
- | device file that immediately discards everything it receives. In order | ||
- | to make it easier for you to remember these rules, you might wish to | ||
- | paste the following commented text at the top of your own cron entries.</ | ||
< | < | ||
- | + | # Redirect everything to / | |
- | # Re-dirige todo a / | + | |
# | # | ||
# | # | ||
Línea 370: | Línea 266: | ||
Por defecto, Slackware incluye un número de entradas y comentarios en el contrab del administrador. Estas entradas facilitan la configuración periódica de las tareas del sistema al crear una serie de directorios en ''/ | Por defecto, Slackware incluye un número de entradas y comentarios en el contrab del administrador. Estas entradas facilitan la configuración periódica de las tareas del sistema al crear una serie de directorios en ''/ | ||
- | < | ||
- | root's crontab. These entries make it easier to setup periodic system | ||
- | tasks by creating a number of directories in ''/ | ||
- | corresponding to how often the tasks should run. Any script placed | ||
- | within these directories will be run hourly, daily, weekly, or monthly. | ||
- | The names should be self-explanatory:</ | ||
''/ | ''/ | ||
''/ | ''/ |