Linux进程管理和系统监视
基本概念
- 进程 进程号 PID
- 作业
前台作业:运行于前台,用户对其进行交互操作
后台作业:运行于后台,不接收输入,但向终端输出结果 - 进程状态:就绪、运行、等待
- 进程的优先级
启动进程与作业
- 启动方式
- 手工启动:输入shell命令
前台:commend+回车
后台:commend &如:gedit test &
,会隐藏在后台,可用jobs
命令查看。 - 调度启动:按用户要求的时间或方式执行特定进程 at batch cron
- 手工启动:输入shell命令
- 作业的前后台切换 bg fg
vi test
ctrl+z 挂起vi
fg + 作业号,切换到前台运行
bg+ 作业号,切换到后台运行
常用命令
jobs 显示当前所有作业
jobs命令输出中的+和- ,通过jobs命令输出是可以看到后面有加号和减号,带加号的作业会被当做默认作业,当我们不指定作业号时,该作业被当做作业命令的操作对象。而带减号的是下一个默认作业。
-l 同时显示进程号和作业号
ps 显示进程的状态
ps -aux
a 显示当前终端所有进程
u 显示进程的详细信息,包括CPU、内存使用率
x 显示后台进程的信息
kill 进程号 ,终止正在运行的进程
-9 强行终止
root@ubuntu:~# kill -9 2354
[3]+ Killed vim test3
top查看系统进程
按q退出
free命令
free 显示内存和交换分区的相关信息
free -m 以MB为单位显示,默认以KB为单位显示
free -t 增加总和信息
who 查看当前已登录的所有用户
whoami 显示当前登录的用户名
w 显示谁登录系统并且在做什么
解决上面板不能使用的办法(redhat):
ps -aux | grep panel
找到gnome-panel的进程号
kill 进程号(如3287)
进程调度
at、batch调度:偶尔进行的进程,在指定时刻执行指定的命令序列
cron调度:特定时间重复运行的进程
at调度
at 20:55 10282018
at> wall Happy new year
at> (输入ctrl+D 结束 )
atq 等价于 at -l 显示待执行队列中的作业
atrm (作业编号) 等价于 at -d(作业编号) 删除队列中的作业
在任何情况下,超级用户都能够使用这个命令。对于其他用户来说,是否能够使用就取决于两个文档:/etc/at.allow和/etc/at.deny。默认情况下只有at.deny文件,里面为空,at.allow需要自己创建。
cron 调度
cron服务提供crontab命令来设定cron服务的
crontab [-u user] -e -l -r
其中:
-u 用户名。
-e 编辑crontab文件,默认用vi编辑器。
-l 列出crontab文件中的内容。
-r 删除crontab文件。
c r o n t a b文件每个条目中各个域的意义和格式。
# m h dom mon dow command
下面就是这些域:
第1列分钟0~59
第2列小时00~23(00表示子夜)
第3列日01~31
第4列月01~12
第5列星期0~7(0和7表示星期天)
第6列要运行的命令
如果用户不需要指定其中的几项,就可以用*代替,可以代替任何字符,可以是任何时间
, 表示间隔的多个不连续时间点,例如1,3,5
-表示一个连续的时间范围,例如1-3
/ 表示间隔的时间频率,例如/2 每2个小时 */5
crontab配置文件所在目录:/var/spool/cron,其文件名和用户名同名,自己可用命令查看该文件 crontab -l 显示crontab配置文件
cron进程自动在后台运行,检测crontab配置文件,定期执行cron调度工作
crontab配置文件的编辑工作由crontab -e 完成
uname 显示操作系统的信息
-a 显示全部信息
-r 显示当前系统的内核版本
uptime 查看系统当前时间、运行多长时间、多少用户登录、服务器负荷情况。
~$ uptime
04:45:45 up 1:47, 1 user, load average: 0.00, 0.01, 0.00