查看“Linux 进程管理”的源代码
←
Linux 进程管理
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
任务04:进程管理 ==linux基本命令== == 本章内容 == 什么是进程 进程管理 系统监视工具 计划任务 == 程序与进程的关系 == === 程序 === 保存在硬盘、光盘等介质中的可执行代码和数据 是静态保存的代码 === 进程 === 在CPU及内存中运行的程序代码 是动态执行的代码 父、子进程:每个进程可以创建一个或多个进程 == 查看进程信息 == === ps命令 === 用途:查看静态的进程统计信息 格式:ps aux ps -elf 常用命令选项 <nowiki>a:显示当前终端下的所有进程信息 u:使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程信息 -e:显示系统内的所有进程信息 -l:使用长格式显示进程信息 -f:使用完整的格式显示进程信息</nowiki> [root@localhost ~]# ps aux <nowiki>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 2648 604 ? S Apr02 0:13 init [3] root 2 0.0 0.0 0 0 ? SN Apr02 0:00 [ksoftirqd/0] root 3 0.0 0.0 0 0 ? S< Apr02 0:19 [events/0] root 4 0.0 0.0 0 0 ? S< Apr02 0:00 [khelper]</nowiki> === top命令 === 用途:查看动态的进程排名信息 [root@localhost ~]# top <nowiki>top - 06:08:48 up 4 days, 6:57, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 0.7% sy, 0.0% ni, 97.4% id, 0.4% wa, 0.1% hi, 1.1% si Mem: 191228k total, 171424k used, 19804k free, 19436k buffers Swap: 265064k total, 1284k used, 263780k free, 120480k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6779 root 16 0 2536 832 668 R 3.8 0.4 0:00.04 top 1 root 16 0 2648 604 520 S 0.0 0.3 0:13.54 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0</nowiki> === pgrep命令 === 用途:根据特定条件查询进程PID信息 常用命令选项: <nowiki>-l:列出进程的名称 -U:根据进程所属的用户名进行查找 -t:根据进程所在的终端进行查找</nowiki> <nowiki>[root@localhost ~]# pgrep "init" 1 [root@localhost ~]# pgrep -l "log" 2538 syslogd 2541 klogd 3221 login [root@localhost ~]# pgrep -l -U teacher -t tty1 27483 bash 27584 vim</nowiki> === pstree命令 === 用途:以树型结构显示各进程间的关系 常用命令选项: <nowiki>-p:列出进程的PID号 -u:列出进程对应的用户名 -a:列出进程对应的完整命令</nowiki> [root@localhost ~]# pstree -aup <nowiki>init,1 ├─acpid,2866 ├─atd,3060 ├─auditd,2516 │ ├─python,2518 /sbin/audispd │ └─{auditd},2517 ├─automount,2842</nowiki> == 进程的不同启动方式 == === 手工启动 === 前台启动:用户输入命令,直接执行程序 后台启动:在命令行尾加入“&”符号 <nowiki>[root@localhost ~]# cp /dev/cdrom mycd.iso & [1] 28454</nowiki> 后台任务序号为1,PID号为28454 === 调度启动 === 使用at命令,设置在某个特定的时间,执行一次任务 使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务 == 进程的前后台调度 == === Ctrl+Z 组合键 === 将当前进程挂起,即调入后台并停止执行 === jobs命令 === 查看处于后台的任务列表 === fg命令 === 将处于后台的进程恢复到前台运行,需指定任务序号 <nowiki>[root@localhost ~]# jobs [1]- Stopped cp /dev/cdrom mycd.iso [2]+ Stopped top [root@localhost ~]# fg 1</nowiki> == 终止进程的运行 == === Ctrl+C组合键 === 中断正在执行的命令 === kill、killall命令 === kill用于终止指定PID号的进程 killall用于终止指定名称的所有进程 -9 选项用于强制终止 <nowiki>[root@localhost ~]# pgrep -l "portmap" 2869 portmap [root@localhost ~]# kill -9 2869 [root@localhost ~]# killall -9 vim [1]- 已杀死 /usr/bin/vim file1 [2]- 已杀死 /usr/bin/vim file2 </nowiki> === pkill命令 === 用途:根据特定条件终止相应的进程 常用命令选项: <nowiki>-U:根据进程所属的用户名终止相应进程 -t:根据进程所在的终端终止相应进程</nowiki> <nowiki>[root@localhost ~]# w | grep -v "root" 14:10:10 up 6:08, 4 users, load average: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT teacher tty1 - 14:04 5:34 0.16s 0.16s -bash hackli pts/1 173.17.17.174 14:05 4:32 0.17s 0.17s -bash [root@localhost ~]# pkill -9 -t pts/1 [root@localhost ~]# w | grep -v "root" 14:12:22 up 6:10, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT teacher tty1 - 14:04 7:46 0.16s 0.16s -bash</nowiki> == 桌面环境下监视系统 == 通过系统监视器可以实现对CPU、硬盘、内存和交换分区的实时监视 == 计划任务管理 —— at == === at命令 === 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务 服务脚本名称:/etc/init.d/atd 设置格式:at [HH:MM] [yyyy-mm-dd] <nowiki>[root@localhost ~]# service atd start 启动 atd: [确定] [root@localhost ~]# at 23:45 #按Ctrl+D键提交任务 at> shutdown -h now at> <EOT> job 1 at 2009-09-14 23:45 [root@localhost ~]# atq 1 2009-09-14 23:45 a root </nowiki> == 计划任务管理 —— crontab == === crontab命令 === 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务 [root@localhost ~]# cat /etc/crontab <nowiki>SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly </nowiki> === 管理cron计划任务 === 编辑计划任务:crontab -e [-u 用户名] 查看计划任务:crontab -l [-u 用户名] 删除计划任务:crontab -r [-u 用户名] root用户可以管理指定用户的计划任务 普通用户只能管理自己的计划任务 === crontab任务的配置格式 === [[文件:linux5-2.png]] 时间数值的特殊表示方法 <nowiki> * 表示该范围内的任意时间 , 表示间隔的多个不连续时间点 - 表示一个连续的时间范围 / 指定间隔的时间频率</nowiki> 应用示例 <nowiki> 0 17 * * 1-5 周一到周五每天17:00 30 8 * * 1,3,5 每周一、三、五的8点30分 0 8-18/2 * * * 8点到18点之间每隔2小时 0 * */3 * * 每隔3天</nowiki> === crontab应用示例 === 示例1(root用户): <nowiki>每天早上7:50自动开启sshd服务,22点50时关闭 每隔5天清空一次FTP服务器公共目录/var/ftp/pub 每周六的7:30时,重新启动httpd服务 每周一、三、五的17:30时,打包备份/etc/httpd目录</nowiki> 示例2(jerry用户): 每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件 示例3: root用户查看自己的计划任务列表 查看并删除jerry用户设置的计划任务 <nowiki>[root@localhost root]# crontab -l -u jerry 55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt [root@localhost root]# crontab -r -u jerry [root@localhost root]# crontab -l -u jerry no crontab for jerry [root@localhost root]# </nowiki> ==实验:管理进程并设置计划任务 == === 需求描述 === *管理系统中的进程 **确认vsftpd、sshd服务的启动状态,并关闭vsftpd服务 **启动bluetooth服务,然后使用kill命令终止其运行 **查找系统中CPU占用率超过80的进程,并强行终止该进程 **练习各种进程管理命令的使用 *设置计划运行的系统管理任务 **每周一早上7:50自动清空FTP服务器公共目录“/var/ftp/pub” **每天晚上10:30分自动执行任务,保存磁盘使用情况信息 *查看所设置的计划任务列表 返回 [[Linux基础]]
返回至
Linux 进程管理
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息