将命令放入后台:mv file1 p2 &
将当前的作业放到后台:ctrl z
观察后台作业状态:jobs -l
将后台作业拿到前台:fg %2477(job num)
杀死进程
1.正常杀:kill -15 2487
2.强杀:kill -9 2480
列出内存中所有进程:ps aux
列出进程树:ps -axjf
每两秒刷新一次进程信息:top -d 2//直接输top就ok
显示进程树:pstree -Aup(可以显示进程ID哦,这样如果要杀死僵尸进程的父进程就简单多了)
僵尸进程(zombie):CMD还接上了<defunct>
显示当前内存容量:free -m
输出系统的基本信息:uname -a
pri值越小,进程越快执行,nice可以影响优先级,PRI(new) = PRI(old)+nice
将2420的nice值重新调整为10:renice 10 2420
*
内核调度的对象是线程,而不是进程。
linux对线程和进程并不特别区分,线程不过是一种特殊的进程。内核没并没有准备特别的调度算法或是定义特别的数据结构来表征线程。
内核把进程存放在叫做任务队列的双向循环链表中。
PID的最大值是32768(short int的最大值)
进程的状态:
TASK_RUNNING(运行)
TASK_INTERRUPTIBLE(可中断等待)
TASK_UNINTERRUPTIBLE(不可中断等待)
TASK_ZOMBIE(僵死):该进程已经结束,但其父进程没有调用wait4()系统调用
TASK_STOPPED(停止,暂停)
EXIT_DEAD(僵死撤消状态)
进程家族树:
所有进程都是PID为1的init进程的后代。内核在系统启动的最后阶段启动init进程。该进程读取系统的初始化脚本(initscript)并执行其他的相关程序,最终完成系统启动的整个过程。
进程创建:
fork()通过拷贝当前进程创建一个子进程。使用copy-on-write(写时拷贝)把资源给新创建的进程。写时拷贝是一种可以推迟甚至免除拷贝数据的技术。
exec()函数负责读取可执行文件并将其载入地址空间开始运行。调用装入一个新的程序
_exec():终止一个进程
将当前的作业放到后台:ctrl z
观察后台作业状态:jobs -l
将后台作业拿到前台:fg %2477(job num)
杀死进程
1.正常杀:kill -15 2487
2.强杀:kill -9 2480
列出内存中所有进程:ps aux
列出进程树:ps -axjf
每两秒刷新一次进程信息:top -d 2//直接输top就ok
显示进程树:pstree -Aup(可以显示进程ID哦,这样如果要杀死僵尸进程的父进程就简单多了)
僵尸进程(zombie):CMD还接上了<defunct>
显示当前内存容量:free -m
输出系统的基本信息:uname -a
pri值越小,进程越快执行,nice可以影响优先级,PRI(new) = PRI(old)+nice
将2420的nice值重新调整为10:renice 10 2420
*
内核调度的对象是线程,而不是进程。
linux对线程和进程并不特别区分,线程不过是一种特殊的进程。内核没并没有准备特别的调度算法或是定义特别的数据结构来表征线程。
内核把进程存放在叫做任务队列的双向循环链表中。
PID的最大值是32768(short int的最大值)
进程的状态:
TASK_RUNNING(运行)
TASK_INTERRUPTIBLE(可中断等待)
TASK_UNINTERRUPTIBLE(不可中断等待)
TASK_ZOMBIE(僵死):该进程已经结束,但其父进程没有调用wait4()系统调用
TASK_STOPPED(停止,暂停)
EXIT_DEAD(僵死撤消状态)
进程家族树:
所有进程都是PID为1的init进程的后代。内核在系统启动的最后阶段启动init进程。该进程读取系统的初始化脚本(initscript)并执行其他的相关程序,最终完成系统启动的整个过程。
进程创建:
fork()通过拷贝当前进程创建一个子进程。使用copy-on-write(写时拷贝)把资源给新创建的进程。写时拷贝是一种可以推迟甚至免除拷贝数据的技术。
exec()函数负责读取可执行文件并将其载入地址空间开始运行。调用装入一个新的程序
_exec():终止一个进程