Linux之进程管理&任务计划



戊戌年01月19日 姓名:Kevin
###

一、进程管理

———————————————————————————————————————————
1.了解:
Linux是一个多用户、多任务的操作系统,在系统中可以同时运行多个进程,当系统收到请求时,操作系统监控着一个等待执行的任务队列,这 些任务包括用户作业、操作系统任务、邮件和打印作业等。根据每个任务的优先级为每个任务分配时间片,每个任务都会被系统运行一段时间, 然后挂起,系统转而处理其他的任务,直到某个任务完成,从任务队列中去除
2.概念:
进程是在自身的虚拟地址空间运行的一个单独的程序,Linux上运行的所有内容都可以称之为进程(作业)
3.进程和程序区别:
进程不是程序由程序产生,随时发生变化的,动态的使用系统资源的程序; 程序是一个静态指令的集合,不占用系统资源,一个程序 可以启动多个进程
4.进程类型:
交互式进程:由shell启动并控制,可以在前台/后台运行;
批处理进程:与终端无关,在指定的时刻完成的一系列进程;
守护进程 :引导系统启动时执行即时的操作系统任务;
5.查看系统进程:
–ps命令:
ps [-aux~] 【-a:显示所有用户进程;-u:打印用户格式,显示用户名和进程起始时间; -x:显示不带终端控制的进程】
『输出字段的含义:~ %CPU:占用CPU时间和总时间百分比 %MEM:使用物理内存占总内存的百分比 VSZ:进程使用虚拟内存的大小/KB; RSS:进程占用的 物理内存总数量/KB; STAT:R:准备运行、 S:睡眠状态、 T:停止或追踪、 I:空闲、 Z:冻结』
–top命令
6.进程启动:
–手工启动: -前台启动:控制台输入的命令
-后台启动:在命令后+“ &”(启动长时间的格式化文本文件进程,为了不使shell在工作中“ 瘫痪”)
–调度启动:在指定时间启动(自动化)
7.结束进程:
–原因:
-该进程使用的CPU时间过多; -运行了很长时间,没有产生期望的输出; -产生到屏幕或文件中的输出太多; -锁住了一个终端或其他会话过程; -由于操作错误,该进程正在使用其它错误的输入、输出文件;
–终止前台进程:CTRL+C; –终止后台进程:kill/kill -9(强制一般不使用,如果终止一个更新文件,用户可能丢失更新的材料或整个文件)
8.进程挂起及恢复:
–查看shell的作业清单:jobs
–挂起:CTRL+Z
–恢复:fg(将挂起命令放到前台执行); bg(将挂起的命令放到后台执行);
###

二、任务计划(调度启动进程/进程自动化)

——————————————————————————————————————————–
1.概念:在指定的时间出发某个作业,管理员可以使用自动化的任务执行定期备份、监控系统和运行定制脚本等 Linux中通常使用cron和at命令实现
—cron:
a.–/etc/crontab文件实现自动化,文件详情/每行:
-minute:分钟(0-59之间任何整数); -hour: 小时(0-23之间任何整数); -day : 天数(0-31之间任何整数); -month: 月份(1-12之间任何整数/jan feb mar apr may jun jul aug sep oct nov dec); -dayofweek:星期(0-7之间任何整数(0/7都代表星期日)/sun mon tue wed thu fri sat); -username:执行用户; -command :执行命令/脚本; 【以上值中: “ *”:代表所有有效值; “ -”:一个整数的范围; “ ,”:指定间隔; “ /”:指定间隔频率(*/3,月份中表示/3个月执行一次);详情如下:
– 30 21 * * * root /kevin/cleanup.sh
//每天的21:30运行/kevin目录下的cleanup.sh
45 4 1,10,22 * * root /kevin/cleanup.sh
//每月1、10、22号的4:45运行/kevin目录下的cleanup.sh
10 1 * * 6,0 root /kevin/cleanup.sh
//每周六、日的1:10运行/kevin目录下的cleanup,sh
0,30 18-23 * * * root /kevin/cleanup.sh
//每天18:00-23:00之间每隔30分钟运行/kevin目录下的cleanup.sh
0 23 * * 6 root /kevin/cleanup.sh
//每周六的23:00运行/kevin目录下的cleanup,sh
】 『 –Linux使用run-parts脚本来执行/etc/cron.hourly(/小时执行) etc/cron.daily(/每日执行) etc/cron.weekly(/每周执行) etc/cron.monthly(/ 每月执行); –如果需要根据调度来执行而不是/小时/日/月执行,它可以被添加到/etc/cron.d目录中(该目录和/etc/crontab中使用一样的语法); 』
b.–crontab命令实现自动化:
-命令:crontab [-u [用户名]](非root用户不用) [-ler]【-l:列出crontab中内容; -e:编辑crontab文件; -r:删除crontab文件】『向cron进程提 交一个crontab文件前,需要设置环境变量EDITOR –编辑用户宿主目录下的.bash_profil e文件添加:EDITOR=vi;export EDITOR 创建完会建立一个副本/var/spool/cron/

猜你喜欢

转载自blog.csdn.net/aaron_miller/article/details/80181254
今日推荐