1、ps ajx查看进程信息
ps aux | grep ‘test’
ps axj | head -1 && ps aux | grep ‘test’:前面一部分打印属性抬头
ps -l
进程具有独立性:他们自各都有一份数据,互不干扰
2、进程状态
int main() {
9 while (1) {
10 printf("i am runnning\n");
11 sleep(1);
12 }
13 return 0;
14 }
上述代码执行时查看的进程状态如下:
是S状态并非R状态! 因为代码大部分时间是在休眠,很少很少时间在CPU上执行,我们查看时很小概率恰好代码正在执行。
S:浅度休眠,是可以被唤醒的
D:深度休眠,深度休眠的进程不可以被OS杀掉,只能等待该进程自己醒来;一般在访问磁盘等IO操作时设置D状态,防止被OS误杀
T:kill -l:
可以查看kill 后跟的命令;kill -19 pid
可以暂停pid的进程;kill -18 pid
可以重新启动刚才T状态的进程
Z:僵尸进程;进程退出时会把自己的信息写入PCB供父进程读取,父进程读取成果该进程才算真正死亡;子进程完成任务但父进程还未读取时的状态叫僵尸状态
X:死亡状态;kill -9 pid
可以杀掉进程
S+:+表示前台运行,在这种模式下bash不起作用,也就是不能输入bash命令了,./test &
可以设置后台运行前台后台操作
D/Z状态的进程不能被强制kill
3、优先级
ps -l
可以查看优先级,可以加-a
选项查看当前用户的所有进程(因为可能开了两个窗口,-l只能查看当前窗口的)
调整优先级(调整NI值):
step1:top
命令(调整失败可以通过sudo打开top再操作)
step2:r
命令 + 输入pid + enter
step3:输入新的NI值 + enter
step4:查看新的优先级值