0.摘要
概念与技巧
-Unix shell的功能
-Unix的进程模型
-如何执行一个程序
-如何创建一个进程
-父进程和子进程之间如何通信
相关的系统调用
-fork
-exec
-wait
-exit
相关命令
-sh
-ps
1.什么是进程
进程就是运行的程序.
2.通过命令ps学习进程
ps会列出当前运行的所有进程
ls会列出当前目录下的文件信息
ps显示进程,其中有pid,每一个进程与一个终端相连,每个进程有自己已经运行的时间
ps -a 打印其他终端以及系统的进程
ps -la 打印更加详细的进程信息
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 18642 18626 0 80 0 - 15028 poll_s pts/1 00:00:00 python
0 S 1000 24240 24199 0 80 0 - 5045 wait pts/21 00:00:00 man
0 S 1000 24252 24240 0 80 0 - 2848 wait_w pts/21 00:00:00 pager
0 S 1000 25891 23683 0 80 0 - 3775 pause pts/18 00:00:00 bounce_aio
4 R 1000 25901 19808 0 80 0 - 7663 - pts/19 00:00:00 ps
S表示当前进程状态,S(sleep),R(run),uid表示所属用户id,PID表示进程id,PPID表示父用户ID,PRI和NI表示进程优先级和niceness级别(这两个值和内核中的cpu进程调度有关)。内核通过这两个值来判断进程什么时候执行。niceness就像在排队的时候让其他用户排在自己的前面。SZ表示占用的内存量,当程序在运行的时候动态的增加内存,会改变进程的大小。 WCHAN列出了睡眠的原因。 ADDR和F已经不再使用,为了兼容性还是需要。-ly显示目前使用的进程。
ps -fa //格式化的显示信息。
将UID替换成用户,cmd替换成了执行路径。在ps中可以看到许许多多的内部程序。
UID PID PPID C STIME TTY TIME CMD
shengch+ 3322 3249 0 1月05 pts/1 00:01:28 vim -On shm_ts.c shm_t2.
shengch+ 4013 3998 0 1月05 pts/18 00:00:00 man shmget
shengch+ 4025 4013 0 1月05 pts/18 00:00:00 pager
shengch+ 6663 6643 0 1月05 pts/19 00:00:00 man semctl
shengch+ 6675 6663 0 1月05 pts/19 00:00: