Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Administración de Oracle Solaris: tareas comunes Oracle Solaris 11 Information Library (Español) |
1. Localización de información acerca de comandos de Oracle Solaris
2. Gestión de grupos y cuentas de usuario (descripción general)
3. Gestión de cuentas de usuario y grupos (tareas)
4. Inicio y cierre de un sistema Oracle Solaris
5. Trabajo con Oracle Configuration Manager
6. Gestión de servicios (descripción general)
7. Gestión de servicios (tareas)
9. Gestión de información del sistema (tareas)
10. Gestión de procesos del sistema (tareas)
Gestión de procesos del sistema (mapa de tareas)
Comandos para gestionar procesos del sistema
Uso de comandos y sistema de archivos /proc
Gestión de procesos con comandos de proceso (/proc)
Cómo visualizar información sobre los procesos
Terminación de un proceso (pkill, kill)
Cómo terminar un proceso (pkill)
Gestión de información de clase de proceso (mapa de tareas)
Gestión de información de clase de proceso
Cambio de prioridad de programación de procesos (priocntl)
Cómo visualizar información básica sobre clases de proceso (priocntl)
Cómo visualizar la prioridad global de un proceso
Cómo designar una prioridad de proceso (priocntl)
Cómo cambiar los parámetros de programación de un proceso de tiempo compartido (priocntl)
Cómo cambiar la clase de un proceso (priocntl)
Cambio de prioridad de un proceso de tiempo compartido (nice)
Cómo cambiar la prioridad de un proceso (nice)
Resolución de problemas de procesos del sistema
11. Supervisión del rendimiento del sistema (tareas)
12. Gestión de paquetes de software (tareas)
13. Gestión del uso de discos (tareas)
14. Programación de tareas del sistema (tareas)
15. Configuración y administración de impresoras mediante CUPS (tareas)
16. Gestión de la consola del sistema, dispositivos del terminal y servicios de energía (tareas)
17. Gestión de información sobre la caída del sistema (tareas)
18. Gestión de archivos del núcleo central (tareas)
19. Resolución de problemas de software y sistemas (tareas)
20. Resolución de diversos problemas de software y sistemas (tareas)
La siguiente tabla describe los comandos necesarios para gestionar los procesos del sistema.
Tabla 10-1 Comandos para gestionar procesos
|
El comando ps permite comprobar el estado de los procesos activos en un sistema y mostrar información técnica sobre los procesos. Estos datos son útiles para tareas administrativas, como la determinación de la manera de definir las prioridades del proceso.
Según las opciones utilizadas, el comando ps proporciona la siguiente información:
Estado actual del proceso
ID de proceso
ID de proceso principal
Identificador del usuario
Clase de programación
Prioridad
Dirección del proceso
Memoria utilizada
Tiempo de CPU utilizado
En la siguiente tabla, se describen algunos de los campos informados por el comando ps. Los campos que se muestran dependen de la opción seleccionada. Para obtener una descripción de todas las opciones disponibles, consulte la página del comando man ps(1).
Tabla 10-2 Resumen de campos de informes de ps
|
Puede visualizar información detallada sobre los procesos mostrados en el directorio /proc mediante los comandos de proceso. La siguiente tabla muestra los comandos de proceso /proc. El directorio /proc también se conoce como el sistema de archivos de procesos (PROCFS). Las imágenes de procesos activos se almacenan aquí por número de ID de proceso.
Tabla 10-3 Comandos de proceso (/proc)
|
Para obtener más información, consulte proc(1).
Las herramientas del proceso son similares a algunas opciones del comando ps, salvo que el resultado proporcionado por estos comandos sea más detallado.
En general, los comandos del proceso realizan las siguientes acciones:
Muestran más información sobre procesos, como fstat y fcntl, directorios de trabajo y árboles de procesos principales y secundarios.
Proporcionan control de los procesos permitiendo a los usuarios que los detengan o los reanuden.
Puede visualizar información técnica detallada sobre procesos o controlar procesos activos mediante algunos de los comandos de proceso. La Tabla 10-3 muestra algunos de los comandos /proc.
Si un proceso queda atrapado en un bucle infinito, o si el proceso tarda demasiado en ejecutarse, es posible que desee detenerlo (terminarlo). Para obtener más información sobre la detención de procesos mediante el comando kill o pkill, consulte el Capítulo 10, Gestión de procesos del sistema (tareas).
El sistema de archivos /proc es una jerarquía de directorios que contiene subdirectorios adicionales para información de estado y funciones de control.
El sistema de archivos /proc también proporciona una utilidad de punto de observación x que se utiliza para reasignar permisos de lectura y escritura en las páginas individuales del espacio de direcciones de un proceso. Esta utilidad no tiene restricciones y admite multiprocesamiento.
Las herramientas de depuración se han modificado para usar la utilidad de punto de observación x de/proc, lo que significa que todo el proceso de punto de observación x es más rápido.
Las siguientes restricciones se han eliminado al definir los puntos de observación x mediante la herramienta de depuración dbx:
Configuración de puntos de observación x en variables locales de la pila debido a ventanas de registro de sistema basadas en SPARC.
Configuración de puntos de observación x en procesos multiprocesamiento.
Para obtener más información, consulte las páginas del comando man proc(4) y mdb(1).
$ ps [-efc]
Muestra sólo los procesos que están asociados con la sesión de inicio.
Muestra información completa sobre todos los procesos que se están ejecutando en el sistema.
Muestra información del programador del proceso.
Ejemplo 10-1 Lista de procesos
El siguiente ejemplo muestra el resultado del comando ps cuando no se utiliza ninguna opción.
$ ps PID TTY TIME COMD 1664 pts/4 0:06 csh 2081 pts/4 0:00 ps
El siguiente ejemplo muestra el resultado del comando ps - ef. Este resultado muestra que el primer proceso que se ejecuta cuando el sistema se inicia es sched (el intercambiador), seguido del proceso init, pageout, etc.
$ ps -ef UID PID PPID C STIME TTY TIME CMD root 0 0 0 18:04:04 ? 0:15 sched root 5 0 0 18:04:03 ? 0:05 zpool-rpool root 1 0 0 18:04:05 ? 0:00 /sbin/init root 2 0 0 18:04:05 ? 0:00 pageout root 3 0 0 18:04:05 ? 2:52 fsflush root 6 0 0 18:04:05 ? 0:02 vmtasks daemon 739 1 0 19:03:58 ? 0:00 /usr/lib/nfs/nfs4cbd root 9 1 0 18:04:06 ? 0:14 /lib/svc/bin/svc.startd root 11 1 0 18:04:06 ? 0:45 /lib/svc/bin/svc.configd daemon 559 1 0 18:04:49 ? 0:00 /usr/sbin/rpcbind netcfg 47 1 0 18:04:19 ? 0:01 /lib/inet/netcfgd dladm 44 1 0 18:04:17 ? 0:00 /sbin/dlmgmtd netadm 51 1 0 18:04:22 ? 0:01 /lib/inet/ipmgmtd root 372 338 0 18:04:43 ? 0:00 /usr/lib/hal/hald-addon-cpufreq root 67 1 0 18:04:30 ? 0:02 /lib/inet/in.mpathd root 141 1 0 18:04:38 ? 0:00 /usr/lib/pfexecd netadm 89 1 0 18:04:31 ? 0:03 /lib/inet/nwamd root 602 1 0 18:04:50 ? 0:02 /usr/lib/inet/inetd start root 131 1 0 18:04:35 ? 0:01 /sbin/dhcpagent daemon 119 1 0 18:04:33 ? 0:00 /lib/crypto/kcfd root 333 1 0 18:04:41 ? 0:07 /usr/lib/hal/hald --daemon=yes root 370 338 0 18:04:43 ? 0:00 /usr/lib/hal/hald-addon-network-discovery root 159 1 0 18:04:39 ? 0:00 /usr/lib/sysevent/syseventd root 236 1 0 18:04:40 ? 0:00 /usr/lib/ldoms/drd root 535 1 0 18:04:46 ? 0:09 /usr/sbin/nscd root 305 1 0 18:04:40 ? 0:00 /usr/lib/zones/zonestatd root 326 1 0 18:04:41 ? 0:03 /usr/lib/devfsadm/devfsadmd root 314 1 0 18:04:40 ? 0:00 /usr/lib/dbus-daemon --system . . .
# pgrep process
donde proceso es el nombre del proceso sobre el que desea visualizar más información.
El ID de proceso se muestra en la primera columna del resultado.
# /usr/bin/pcommand pid
Es el comando (/proc) que desea ejecutar. La Tabla 10-3 muestra y describe estos comandos.
Identifica el ID de proceso.
Ejemplo 10-2 Visualización de información sobre procesos
El siguiente ejemplo muestra cómo utilizar los comandos de proceso para visualizar más información sobre un proceso cron.
# pgrep cron 1 4780 # pwdx 4780 2 4780: /var/spool/cron/atjobs # ptree 4780 3 4780 /usr/sbin/cron # pfiles 4780 4 4780: /usr/sbin/cron Current rlimit: 256 file descriptors 0: S_IFCHR mode:0666 dev:290,0 ino:6815752 uid:0 gid:3 rdev:13,2 O_RDONLY|O_LARGEFILE /devices/pseudo/mm@0:null 1: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771 O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE /var/cron/log 2: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771 O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE /var/cron/log 3: S_IFIFO mode:0600 dev:32,128 ino:42049 uid:0 gid:0 size:0 O_RDWR|O_LARGEFILE /etc/cron.d/FIFO 4: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0 O_RDWR|O_NONBLOCK 5: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0 O_RDWR
Obtiene el ID de proceso para el proceso cron
Muestra el directorio de trabajo actual del proceso cron
Muestra el árbol de proceso que contiene el proceso cron
Muestra información de fstat y fcntl
# pgrep process
donde proceso es el nombre del proceso que desea controlar.
El ID de proceso se muestra en la primera columna del resultado.
# /usr/bin/pcommand pid
Es el comando de proceso (/proc) que desea ejecutar. La Tabla 10-3 muestra y describe estos comandos.
Identifica el ID de proceso.
# ps -ef | grep pid
A veces, es posible que necesite detener (terminar) un proceso. El proceso se puede encontrar en un bucle infinito. O bien, es posible que haya iniciado un trabajo grande que desea detener antes de finalizarlo. Puede terminar cualquier proceso propio. El superusuario puede terminar cualquier proceso del sistema, excepto los procesos con ID de proceso 0, 1, 2, 3 y 4. Es muy probable que al terminar estos procesos, se produzca un fallo en el sistema.
Para obtener más información, consulte las páginas del comando man pgrep(1), pkill(1) y kill(1).
$ pgrep process
donde proceso es el nombre del proceso que desea terminar.
Por ejemplo:
$ pgrep netscape 587 566
El ID de proceso se muestra en el resultado.
Nota - Para obtener información de proceso sobre Sun Ray, utilice los siguientes comandos:
# ps -fu user
Este comando muestra todos los procesos del usuario.
# ps -fu user | grep process
Este comando ubica un proceso específico para un usuario.
$ pkill [signal] process
Cuando no se incluye ninguna señal en la sintaxis de la línea de comandos pkill, la señal predeterminada que se utiliza es -15 (SIGKILL). Mediante la señal -9 (SIGTERM) con el comando pkill, se garantiza que el proceso terminará de inmediato. Sin embargo, la señal -9 no debe utilizarse para terminar ciertos procesos, como un proceso de base de datos o un proceso de servidor LDAP. El resultado es que los datos pueden perderse.
Es el nombre del proceso que se detendrá.
Consejo - Cuando se utiliza el comando pkill para terminar un proceso, primero, intente usar el comando por sí mismo, sin incluir una opción de señal. Espere unos minutos para ver si el proceso termina antes de utilizar el comando pkill con la señal -9.
$ pgrep process
El proceso terminado ya no se debería mostrar en el resultado del comando pgrep.
# ps -fu user
donde usuario es el usuario para el que desea mostrar los procesos.
El ID de proceso se muestra en la primera columna del resultado.
# kill [signal-number] pid
Cuando no se incluye ninguna señal en la sintaxis de la línea de comandos kill, la señal predeterminada que se utiliza es -15 (SIGKILL). Mediante la señal -9 (SIGTERM) con el comando kill, se garantiza que el proceso terminará de inmediato. Sin embargo, la señal -9 no debe utilizarse para terminar ciertos procesos, como un proceso de base de datos o un proceso de servidor LDAP. El resultado es que los datos pueden perderse.
Es el ID del proceso que desea terminar.
Consejo - Cuando se utiliza el comando kill para detener un proceso, primero, intente usar el comando por sí mismo, sin incluir una opción de señal. Espere unos minutos para ver si el proceso termina antes de utilizar el comando kill con la señal -9.
$ pgrep pid
El proceso terminado ya no se debería mostrar en el resultado del comando pgrep.
El comando pargs y el comando preap mejoran la depuración de procesos. El comando pargs imprime los argumentos y las variables de entorno asociados con un proceso en ejecución o un archivo del núcleo central. El comando preap elimina procesos inactivos (zombie). Un proceso zombie todavía no ha tenido el estado de salida reclamado por el proceso principal. En general, estos procesos son inofensivos, pero pueden consumir los recursos del sistema si son numerosos. Puede utilizar los comandos pargs y preap a fin de examinar los procesos para los que cuenta con privilegios. Como superusuario, puede examinar cualquier proceso.
Para obtener información sobre el uso del comando preap, consulte la página del comando man preap(1). Para obtener información sobre el uso del comando pargs, consulte la página del comando man pargs(1). Consulte también la página del comando man proc(1).
Ejemplo 10-3 Depuración de un proceso (pargs)
El comando pargs resuelve el antiguo problema de no poder mostrar todos los argumentos que se transfieren a un proceso con el comando ps. El siguiente ejemplo muestra cómo utilizar el comando pargs en combinación con el comando pgrep para mostrar los argumentos que se transfieren a un proceso.
# pargs `pgrep ttymon` 579: /usr/lib/saf/ttymon -g -h -p system-name console login: -T sun -d /dev/console -l argv[0]: /usr/lib/saf/ttymon argv[1]: -g argv[2]: -h argv[3]: -p argv[4]: system-name console login: argv[5]: -T argv[6]: sun argv[7]: -d argv[8]: /dev/console argv[9]: -l argv[10]: console argv[11]: -m argv[12]: ldterm,ttcompat 548: /usr/lib/saf/ttymon argv[0]: /usr/lib/saf/ttymon
El siguiente ejemplo muestra cómo utilizar el comando pargs - e para mostrar las variables de entorno asociadas con un proceso.
$ pargs -e 6763 6763: tcsh envp[0]: DISPLAY=:0.0