进程与程序
程序:静态的 执行特定程序的 一串代码
进程:正在运行中的程序
- 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
- 并发性:任何进程都可以同其他进程一起并发执行;
- 独立性:进程是系统进行资源分配和调度的一个独立单位;
- 结构性:进程由程序、数据和进程控制块三部分组成。
僵尸进程
僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出,子进程被init接管,子进程退出后init会回收其占用的相关资源。
ps命令
静态查看进程状态
- a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
- u:使用以用户为主的格式输出进程信息。
- x:显示当前用户在所有终端下的进程信息。
- -e:显示系统内的所有进程信息。
- -l:使用长(Long)格式显示进程信息。
- -f:使用完整的(Full)格式显示进程信
- k|--sort 属性 对属性排序,属性前加 - 表示倒序 ps aux k -%cpu
- o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
ps aux查看多个终端进程
top命令
动态查看进程状态默认每3秒刷新一次,q键退出
选项:
- -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
- -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
- -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
- -p 进程PID:仅查看指定 ID 的进程;
- -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
- -u 用户名:只监听某个用户的进程;
在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:
- ? 或 h:显示交互模式的帮助;
- c:按照 CPU 的使用率排序,默认就是此选项;
- M:按照内存的使用率排序;
- N:按照 PID 排序;
- T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
- k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
- r:按照 PID 给某个进程重设优先级(Nice)值;
- q:退出 top 命令;
prestree命令
- -a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
- -p 显示PID
- -T 不显示线程thread,默认显示线程
- -u 显示用户切换
- -H pid 高亮显示指定进程及其前辈进程
进程前后台调整
ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行
jobs命令:查看后台任务列表
fg命令:将后台进程恢复到前台运行
kill
kill 0 默认,程序退出时收到此信息
kill 9 强制杀死此进程(不管是否进程在进行数据传输)
kill 15 正常结束进程,等数据写完再结束
killall 杀死所有相关进程
定期周期任务
定时性周期任务:crontab是一个服务。
全局配置文件,位于文件:/etc/crontab
配置定时性周期任务规则:* * * * * +执行用户 +执行命令
项目 | 含义 | 范围 |
---|---|---|
第一个"*" | 一小时当中的第几分钟(minute) | 0~59 |
第二个"*" | 一天当中的第几小时(hour) | 0~23 |
第三个"*" | 一个月当中的第几天(day) | 1~31 |
第四个"*" | 一年当中的第几个月(month) | 1~12 |
第五个"*" | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
常用选项:
- -u:缺省时默认是针对当前用户,只有超级用户才可以用-u
- -e:编辑计划任务
- -l:查看计划任务
- -r:删除计划任务
- -i:交互删除计划任务
at(一次性执行任务)
- at:指定时间设置任务(不加年月日表示当天)
- ctrl+d:提交退出
- atq:查看未执行的任务列表
- atrm:[任务序号] 删除第一条任务