Logo
  • Entries
  • Comments
  • Popular
Recent Posts
  • January 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • July 2007
Recent Comments
  • Makendra It's always a pleasure to hear from someone with eexrpitse....
  • Rubén Ortiz Hola dependerá de varias cosas pero la respuesta sería NO. ...
  • jose miguel perea Buenos días, ¿La replicación entre maestro y esclavo es i...
  • Rubén Ortiz Si lo hacéis legal, con VMware el único problema son los cos...
  • Angel Hola, estamos valorando implementar baremetal para crear un ...
Popular Articles
  • Declaro la guerra al mosquito Tigre (35)
  • Phpbb3 - encode error converter (19)
  • MySQL - Variables básicas a configurar (17)
  • Reinicio programado Windows 2003 Server (16)
  • Plesk - Evitar el SPAM (10)
  • Home
  • Contacta
  • Hosting Linux
  • Legal
  • Sobre mí – About me

Linux LPI1 – Apuntes II

Posted by Rubén Ortiz on Nov 27, 2007 in Linux | 2 comments

Sigo introduciendo mis apuntes de las clases de la LPI – 1. Aún tengo varios días que pasar de apuntes y más me vale hacerlo rápido, porque se me acumula la faena. Lo bueno de hacer esto es que te das cuentas de los pequeños detalles que quedaron sin comprender y refuerza en la memoria ciertos conceptos.

El proceso hit, es el proceso padre de UNIX. Los procesos tienen
jerarquía y parentesco, credenciales y ficheros abiertos.UID y GID son credenciales:

UID – usuario que ejecutó el proceso
GID – grupo que ejecutó el proceso

Un proceso hijo hereda las credenciales del padre. Comentamos brevemente el comando lsof(List Open Files), lista de ficheros abiertos por un proceso:

1
#lsof -p1

lista de ficheros abiertos por el proceso de PID 1. Hablamos ahora del comando ps.ps se utiliza para mostrar los procesos del sistema. Si ejecutamos ps axuf vemos una buena muestra de lo que ocurre en el sistema y obtenemos una serie de valores a simple vista:

  • USER: realmente el UID es numérico, pero lo consulta en el archivo /etc/password y lo traduce
  • PID: identificador numérico único en el sistema
  • CPU%: cpu consumida durante el momento en hacer ps
  • MEM: lo mismo. Memoria relativa
  • VSZ: virtual size
  • RSM: memoria residente. Memoria real que ocupa a nivel físico.
  • Tramas del núcleo: salen en la lista de procesos y se muestra entre corchetes. ¡No se pueden “matar”!
  • STAT: estado de procesos
  • TTY: (teletipo / terminal) Su símbolo “?” muestra que la salida del proceso no va a ninguna parte. Un valor “pts/0″ indica la pseudo-terminal número 0. “R” significa running.”r” es ready, ya que, el ps muestra los procesos que esperan su turno para ser procesados.”U”, uninterrupt(no se puede eliminar este proceso).”T” o “||”, pausa. “Z” de zoombie, proceso en espera de morir.
  • TIME: ciclo de tiempo dedicado a la CPU.

Otro comando similar es pstree, que muestra lo mismo que ps pero en forma de árbol.

Otro comando importante es top. Top muestra información muy útil sobre el comportamiento del sistema en todo momento. Muestra la carga de trabajo del sistema operativo con 3 valores, por ejemplo:

Load Average: 0,00; 0,15; 0,23

Los valores muestran la carga del sistema en los últimos 5 minutos, los últimos 10 y los últimos 15. Con esto se puede tener una idea sobre la evolución de la carga de trabajo en el so. Los estados de la cpu muestran diversos parámetros de la cpu, como us(user), sy(sistema) o id. Hay 2 campos a tener también en cuenta como nice o pr:

  • NICE: valoración del proceso según el so. Cuanto más alto sea este valor, más desagradable es para el rendimiento del so, y por tanto menos prioridad recibe. Oscila entre -20 y +19.
  • PR: prioridad. Calculo hecho según varios parámetros. Procesos con carga de I/O Bound(apache, vi)reciben más prioridad que procesos I/O Cpu como gcc.

SEÑALES

Después de ver como obtener información sobre los procesos, hablamos sobre la comunicación entre estos procesos. Podemos ver todas las señales con kill -l. Sólo se envían señales a procesos con la misma credencial, menos root que lo envía a todos(si nos somos root, no podemos enviar señales a procesos de root). Kill significa enviar señal y es un built-in del bash. Cuando ejecutamos kill -1 [PID] estamos enviando una señal SIGHUP, que hace recargar el fichero de configuración al proceso en cuestión. Otro programa parecido es killall. Ejemplos de tipos de señales:

  • #kill -9 -u (user)
  • #kill -1 [PID]; recarga el fichero de configuración(si tiene fichero de configuración)
  • #kill -15 [PID]; SIGTERM
  • #kill -9 [PID]; SIGKILL
  • #kill -19[PID]; TSTOP

Otros comandos relacionados son:

  • nohup: ejecutamos un comando sin tener en cuenta la señal 1(SIGHUP).
  • fg: fg 1, ponemos en primer plano el job 1.
  • bg: enviamos al background para el proceso job.

¿Cómo podemos cambiar la prioridad de los procesos? Utilizando el comando nice. Realmente no modificamos la prioridad sino que sugerimos al so, lo que debe priorizar el proceso.

nice -19 ps ; prioridad positiva para ps.
nice –20 ps; prioridad negativa para ps.

PIPES

Podríamos traducir pipe como canal(aunque se le conoce más por tubo). Una pipe es un fichero abierto. Por defecto, los programas tienen abierto 3 canales. Lo podemos ver con lsof -p [PID], columna FD.

  • Entrada 0 entrada estándar (STDIN) lee datos
  • Entrada 1 salida estándar (STDOUT) escribe los datos
  • Entrada 2 error estándar (STDERR) escribe los errores

Habitualmente el 0 se conecta al teclado, el 1 a la pantalla y el 2 a la pantalla también. Vamos a ver algunos ejemplos:

cat < /etc/passwd
Lee por la entrada 0 (/etc/passwd) y sale por la 1, pantalla

cat < /etc/passwd > /tmp/passwd
Lee por el 0, y sale por el 1(/tmp/passwd)

cat < /etc/passwd > /tmp/passwd 2> /tmp/error

cat < /etc/passwd > /tmp/passwd 2> &1
Lo envía al que esté en el 1

Más ejemplos:

cat > /tmp/p1.txt; cat < /tmp/p1.txt

1) cat enviará los datos que le lleguen por la entrada(teclado,0,STDIN) 2) a la salida /tmp/p1.txt(1,STDOUT).

La pipe sólo conecta comandos, no ficheros.

Otro ejemplo más:

1) cat > matarpids.txt
Introducimos en el txt los PID’s que queremos.

2) kill -9 $(cat matarpids.txt)
adiós a los procesos seleccionados ;)

Kill es un comando que, excepcionalmente, no está conectado a los canales entrada y salida.

2 Responses to “Linux LPI1 – Apuntes II”

  1. choutos says:
    27 de August, 2008 at 9:49 am

    Creo que el último ejemplo es erroneo:

    1) cat > matarpids.txt ¿?¿?¿?

  2. Rubén Ortiz says:
    1 de September, 2008 at 10:49 am

    Hola Choutos

    por defecto cat está conectado a la salida estándar (1 – STDOUT). La pipe “>” hace que, en vez de mostrarlo por pantalla, lo añade al fichero .txt. De ese modo, cat se convierte en una especie de editor de textos básico.

    El ejemplo era para ver como se pasaba información al parámetro kill, porque el matarpids.txt contiene los PIDS que hemos introducido por teclado con el cat y que cat ha añadido al txt.

    Saludos.

Leave a Reply

Click here to cancel reply.

Nube de Tags

apache bare metal benchmark cacti centos dell drupal esxi General gripe A Hardware humor IIS kayako Linux lpi lyric Lyrics memcached mysql nginx openfiler OpenVZ openx Parallels php Phpbb plesk postgresql proftpd raid SQL Server ssh svn trac ubuntu varnish Virtualizacion Virtuozzo Virtuozzo Linux Warphammer.net Windows windows 2003 wordpress zabbix

Categorias

  • 2003 Server
  • Apache 2.X
  • benchmark
  • Centos
  • Cuanto (Luser) Cabron
  • ESXi
  • General
  • Hardware
  • IIS
  • Lighttpd
  • Linux
  • Lyrics
  • MySql
  • Nginx
  • OpenVZ
  • Parallels
  • Parallels Bare Metal
  • Php
  • Phpbb
  • Plesk
  • PostgreSQL
  • Prestashop
  • Software
  • SQL SERVER
  • Ubuntu
  • Varnish
  • Virtualizacion
  • Virtuozzo
  • Virtuozzo Windows
  • VMWare
  • Warphammer.net
  • Windows
  • Wordpress

Blogroll

  • David Toribio
  • EasyCompany.es
  • Marius Duch
  • Series
  • Warphammer.net

Recursos

  • Backup Plesk9
  • CentOS 5 32 bits RPMs
  • CentOS 5 64 bits RPMs
  • Lighttpd
  • MySQL Tunner
  • OpenVZ – Panel – PROXMOX
  • OpenVZ – Panel – VTONF
  • OpenVZ Wiki
  • Parallels Virtual Automation Resources
  • Plesk 8 Docs
  • Plesk 9 Docs
  • Plesk Hacker
  • Port80 – Compression Check
  • Virtuozzo DOCS
  • Virtuozzo Lin Commands
  • Virtuozzo Win Commands
  • Virtuozzo Windows Docu

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Designed by Elegant Themes | Powered by Wordpress