6.进程操作,运行状态

一、进程相关的命令

① ps :列出系统中当前运行的那些进程

-e显示所有进程.
-f全格式。
-h不显示标题。
-l长格式。
-w宽输出。
-a显示终端上的所有进程,包括其他用户的进程。
-r只显示正在运行的进程。
-u以用户为主的格式来显示程序状况。
-x显示所有程序,不以终端机来区分。

用法实例如下,在终端输入ps -ef:

配合命令grep实现查找进程过滤,比如ps -ef | grep init

图中参数说明如下:

命令参数说明
UID:程序被该 UID 所拥有,指的是用户ID
PID:就是这个程序的 ID
PPID :PID的上级父进程的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY:登入者的终端机位置
TIME :使用掉的 CPU时间。
CMD:所下达的指令为何

② top :实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。


 

③ kill :向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。

使用方法:kill -[number] -[PID],number表示要发送的信号,PID表示要发送给的目标进程的进程号,信号的定义如下:

#define SIGHUP 1 /* 终端挂起或控制进程终止 */
#define SIGINT 2 /* 终端中断(Ctrl+C 组合键) */
#define SIGQUIT 3 /* 终端退出(Ctrl+\组合键) */
#define SIGILL 4 /* 非法指令 */
#define SIGTRAP 5 /* debug 使用,有断点指令产生 */
#define SIGABRT 6 /* 由 abort(3)发出的退出指令 */
#define SIGIOT 6 /* IOT 指令 */
#define SIGBUS 7 /* 总线错误 */
#define SIGFPE 8 /* 浮点运算错误 */
#define SIGKILL 9 /* 杀死、终止进程 */
#define SIGUSR1 10 /* 用户自定义信号 1 */
#define SIGSEGV 11 /* 段违例(无效的内存段) */
#define SIGUSR2 12 /* 用户自定义信号 2 */
#define SIGPIPE 13 /* 向非读管道写入数据 */
#define SIGALRM 14 /* 闹钟 */
#define SIGTERM 15 /* 软件终止 */
#define SIGSTKFLT 16 /* 栈异常 */
#define SIGCHLD 17 /* 子进程结束 */
#define SIGCONT 18 /* 进程继续 */
#define SIGSTOP 19 /* 停止进程的执行,只是暂停 */
#define SIGTSTP 20 /* 停止进程的运行(Ctrl+Z 组合键) */
#define SIGTTIN 21 /* 后台进程需要从终端读取数据 */
#define SIGTTOU 22 /* 后台进程需要向终端写数据 */
#define SIGURG 23 /* 有"紧急"数据 */
#define SIGXCPU 24 /* 超过 CPU 资源限制 */
#define SIGXFSZ 25 /* 文件大小超额 */
#define SIGVTALRM 26 /* 虚拟时钟信号 */
#define SIGPROF 27 /* 时钟信号描述 */
#define SIGWINCH 28 /* 窗口大小改变 */
#define SIGIO 29 /* 可以进行输入/输出操作 */
#define SIGPOLL SIGIO
/* #define SIGLOS 29 */
#define SIGPWR 30 /* 断点重启 */
#define SIGSYS 31 /* 非法的系统调用 */
#define SIGUNUSED 31 /* 未使用信号 */

④ nice/renice:进程优先级操作

⑤ bg:将一个在后台暂停的命令,变成继续执行。

⑥ fg :将后台中的命令调至前台继续运行。

二、linux进程运行状态




 

1. R --- TASK_RUNNING(可执行状态)

        此时进程或者正在运行,或者准备运行。

2. S --- TASK_INTERRUPTIBLE(可中断的睡眠状态

        处于这个状态的进程因为某些必要的系统资源没有就绪,而处于等待状态进程的task_struct结构体存入等待队列,直到资源来临,将这些处于等待队列中的进程唤醒。

3. D --- TASK_UNINTERRUPTIBLE(不可中断的睡眠状态

        与TASK_INTERRUPTIBLE类似,但出于睡眠状态的进程无法被中断、事件进行唤醒

4. T --- TASK_STOPPED或TASK_TRACED(暂停状态或跟踪状态

        可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。

5. Z --- TASK_DEAD - EXIT_ZOMBIE(退出状态,进程成为僵尸进程

        是一个比较特殊的状态。当子进程退出并且父进程没有读取到子进程退出的返回代码时,就会产生僵死(尸)进程,僵死进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态。

6. X --- TASK_DEAD - EXIT_DEAD(退出状态,进程即将被销毁

        这个状态只是一个返回状态,你不会在任务列表里看到这个状态。当父进程读取子进程的返回结果时,子进程立刻释放资源。死亡状态是非常短暂的。

孤儿进程:

        当一个子进程的父进程结束的时候,但是它自己还没有结束,那么这个进程将会成为孤儿进程。孤儿进程会被init进程(1号进程)的进程收养,当然在子进程结束时也会由init进程完成对它的状态收集工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值