Con la opción "-u user" visualizo los procesos de dicho
usuario, ejemplo:
Para ver los programas que están corriendo en background se usa
el comando "jobs", ejemplo:
El sistema operativo UNIX mantiene una tabla de todos sus procesos o programas que corren en la máquina, con el nombre del usuario que lo creo, el tiempo de ejecución, el estado del proceso, etc. El comando que permite ver esto es "ps".
moises@tonatiuh% ps -u moises
PID TTY TIME COMD
7603 pts/1 0:00 csh
7606 console 0:02 cmdtool
8064 pts/2 8:13 netscape
7550 console 0:01 csh
8938 pts/ 0:00 ed
7590 console 0:00 olwmslav
. . .
Con la opción "-ef" me despliega todos los procesos con más
información:
moises@tonatiuh% ps -ef
UID PID PPID C STIME TTY TIME COMD
root 0 0 76 Dec 18 ? 0:01 sched
root 1 0 80 Dec 18 ? 1:57 /etc/init -
root 2 0 80 Dec 18 ? 0:42 pageout
root 3 0 80 Dec 18 ? 202:51 fsflush
moises 7603 7600 42 12:55:40 pts/1 0:00 /bin/csh
. . .
root 1903 24972 80 Jan 23 ? 0:01 lpNet
ydm 8604 8602 80 14:30:35 pts/6 0:01 -csh
Y con la opción "-el" se tiene un formato más largo:
moises@tonatiuh% ps -el
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD
19 T 0 0 0 76 0 SY f01878c8 0 ? 0:01 sched
8 S 0 1 0 80 41 20 fc0be998 204 fc0beb68 ? 1:57 init
8 S 0 271 1 54 41 20 fc0bd018 306 fc526d2e ? 0:01 sac
. . .
8 S 15013 7636 1 80 51 20 fc4ec660 1324 fc5b17fe console 0:03 mailtool
8 S 0 1903 24972 80 41 20 fc832340 1134 fc5b1466 ? 0:01 lpNet
8 S 15042 8604 8602 80 41 20 fc831ce0 473 fc4d3cee pts/6 0:01 csh
Cada columna describe el estado del proceso y se puede tener toda la información con el manual en línea (man ps). Aquí están parte de la descripción:
(Nota: lo puesto en paréntesis indica con que opción del comando
se activa)
S (l) Estado del proceso:
O Corriendo sobre un procesador
S En espera de un evento sea completado.
I Ocioso.
Z Zombie
T Parado por una señal del padre.
UID (f,l) El número ID del usuario.
PID (all) Número del proceso.
PPID (f,l) Número del proceso padre.
PRI (l) Prioridad del proceso.
ADDR (l) Dirección de memoria del proceso.
TIME (all) Tiempo acumulativo de ejecución.
COMMAND (all) Nombre del comando. (Nombre completo con -f)
Unix permite ejecutar comandos que no requieran interactuar con el usuario en el background, es decir que si tengo una ventana y ejecuto un comando de esta manera, entonces esa ventana esta lista nuevamente para recibir otro comando. El símbolo para indicarle al sistema esto es "&".
Ejemplo, si ejecuto el editor (mal ejemplo!) en background lo haría así: "ed &".
moises@tonatiuh% jobs
[1] + Stopped (tty input) ed
O si conocemos el número del trabajo podemos ver su estado con el comando "notify #", ejemplo:
moises@tonatiuh% notify 1
[1] + Stopped (tty input) ed
Para sacarlo del background y tenerlo activo, se usa el comando "fg" indicando el proceso:
moises@tonatiuh% fg 1
ed
q
moises@tonatiuh%
aquí el sistema indica que esta activo el editor y con "q", salimos de edición.
Al ejecutar nuevamente el comando, no se tiene ningún proceso en background
moises@tonatiuh% jobs
moises@tonatiuh%
Volvamos a ejecutar el editor en background
moises@tonatiuh% ed &
[1] 9536
Veamos como esta indicado el proceso "ed" el la tabla del sistema
moises@tonatiuh% ps -lu moises | grep ed
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD
. . .
8 T 15013 9536 9531 9 56 20 fca8acd8 175 pts/8 0:00 ed
. . .
Si en estos momentos queremos salirnos del sistema o matar la ventana con "exit", tendríamos el siguiente mensaje:
moises@tonatiuh% exit
There are stopped jobs
Para matar el proceso se usa el comando "kill -9 PID", donde "PID" es el
número del proceso, ejemplo:
moises@tonatiuh% kill -9 9536
moises@tonatiuh%
[1] Killed ed
Y entonces se puede dar nuevamente el comando "exit".
Para incrementar o decrementar la prioridad de un proceso se usa el comando "nice" y la forma de uso en csh es:
Los rangos van del -20 al 20 y por default es 4. Si el comando es omitido, se incrementa la prioridad para el shell.
moises@tonatiuh% crontab -l 0 13,18 * * * /chil/spool/clima/nubesDonde cada columna indica lo siguiente:
minuto hora día del mes mes del año día de la semana ____________________________________________________________ 0-59 0-23 1-31 1-12 0-6 (0=Domingo)