linux进程状态小结
来源:互联网 发布:mac os x 10.7 iso 编辑:程序博客网 时间:2024/06/06 05:30
提到进程,首先想到的自然是ps.这个命令可以查看进程的状态.也会想到/proc目录.当前系统的所有进程都以文件的形式保存在这里.
首先了解一下ps命令.比较常用的一些组合.我是记不住.现用现查.
比如ps axu输出部分如下:
这里着重说一下第八个字段,进程状态:
S sleep(睡眠)
R run(运行)
s session(会话组首进程)
N 优先级比较低(不知道是哪个单词)
< 高优先级进程
+ 前台进程
l 多线程进程
D 不可中断的睡眠.(没见过)
T 停止,GDB调试会导致进程进入这个状态.
Z zombie进程,死了但是还没有死利索.
W 分页(没有见过)
下面简单的通过一个小例子来看看这几个状态.
#include <unistd.h>#include <stdio.h>#include <pthread.h>#include <signal.h>#include <stdlib.h>static int selfkill = 0;void thread1(){ while (1) { sleep(5); return; }}void ding(int signo){ printf("ouch, I am late\n"); sleep(5); selfkill = 1; printf("selfkill %d\n", selfkill);}void child_handle(){ sleep(5); wait(NULL);}int main(int argc, char ** argv){ nice(-20); pthread_t tid; pthread_create(&tid, NULL, (void*)&thread1, NULL); signal(SIGINT, child_handle); pid_t pid = fork(); switch (pid) { case -1: perror("fork error\n"); break; case 0: { signal(SIGALRM, ding); alarm(5); while (1) { printf("I am child, selfkill %d\n", selfkill); sleep(5); if (selfkill != 0) { exit(-1); } } } break; default: nice(40); break; } while (1) { system("ps axu | grep a.out"); sleep(5); } return 0;}
这个小的示例首先建立一个线程,然后注册信号处理函数.捕捉ctrl+C.
建立子进程,在子进程中注册ALARM信号处理函数.实现子进程自残.打印结果如下:
没有什么新颖的内容.也没有什么独特的见解.仅仅是对所学的一个总结.当然可能总结的并不是很全面.
0 0
- linux进程状态小结
- linux进程状态小结
- LINUX进程小结
- Linux进程ID小结
- Linux 进程调度小结
- Linux进程管理小结
- linux 进程 状态
- Linux进程状态
- Linux进程状态解析
- linux进程状态
- linux进程状态浅析
- linux进程状态浅析
- linux进程状态浅析
- Linux 进程状态 说明
- Linux进程状态解析
- Linux进程状态解析
- Linux 进程状态
- linux进程状态浅析
- 线程轮询和线程回调
- 使用SenchaCMD搭建ExtJs5.1 MVVM开发环境
- MD5加密的C#程序
- 啊哈C——学习4.4练习
- 移植linux kernel,应该怎么做
- linux进程状态小结
- uva10759(动态规划)
- C# ToString()方法 带参数的特殊用法
- Linux文件权限管理命令备忘录
- 架构师最怕程序员知道的10件事
- uva 10056(数论)
- shell编程入门之shell基本语法介绍
- windows - 进程 - CreateProcess函数详解
- c++类结构记录