Linux任务调度和进程管理
任务调度命令
概述:任务调度:是指系统在某个时间执行的特定的命令或程序。任务调度分类:
1、系统工作:有些重要的工作必须周而复始的执行。如病毒扫描等。
2、个别用户工作:个别用户可能希望执行某些程序。
设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab -e命令。接着输入任务到调度文件。
例:5 * * * *ls -l /etc/ > /tmp/to.txt
意思说每小时的第五分钟执行ls -l /etc/ > /tmp/to.txt命令
任务调度的使用crontab
1、设置任务crontab -e
2、每隔一定时间去执行
date >/home/mydatal (将当前时间覆盖写入mydata1文件中。>为覆盖写),date显示当前时间。
1)、希望每天凌晨2:00去执行 date >> /home/mydate2 (>>为追加写)
0 2 * * * date>> /home/mydate2
2)、希望每分钟去执行
* * * * * date>> /home/mydate2
*1 *2 *3 *4 *5
*1代表分钟;*2代表小时;*3代表日期;*4代表月历;*5代表星期。
如:0 22 26 5 *,表示星期*、5月、26日、22小时、0分钟。完整意思为每年5月26日22小时0分执行对应任务。*表示设置为无设定。
* * * * *代表每分钟执行一次。
3、怎样去调度多个任务?
1)、在crontab -e 中直接写多个任务(优点:简单;缺点:太多太乱修改不方便)。
2)、可以把所有的任务,写入到一个可执行文件(shell编程)。
.sh文件为shell文件,chmod 744 mytask.sh
vi mytask.sh
date >> /home/mydate2
cp /home/mydate2 /root/
:wq
crontab -e
* * * * * /root/mytask.sh
4、如何终止任务
终止任务调度:1、crontab -r :终止任务调度(多任务多用户使用时禁用此命令); 2、crontab -l :列出当前有那些任务调度。
进程的概念和管理
基本概念
1、在linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号。
2、每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如WWW服务器。
3、每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才会结束。
5、简单理解,进程就是正在执行的程序。
线程:轻量级的进程
(1)、进程有独立的地址空间,线程没有。
(2)、线程不能独立存在,它是由进程创建的。(在linux下是fork,在java中是Thread)。
(3)、相对来讲,线程耗费的CPU和内存小于进程。
静态显示系统执行的进程
ps命令是用来查看目前系统中,有哪些进程正在执行,以及它们执行的状况。可以不加任何参数。显示详细的进程信息,参数如下:
1、ps -a:显示当前终端的所有进程信息。
2、ps -u:以用户的格式显示进程信息。
3、ps -x:显示后台进程运行的参数。
4、ps –aux:显示全面的进程信息。
PS:显示的信息选项
字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消CPU的时间
CMD 正在执行的命令或进程名
终止进程kill/killall
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
终止某个进程:kill进程号。
kill 16251:表示终止进程号为16251的进程。
kill -9 16251:因为有些进程会捕捉某些信号。如果直接不能结束进程可以用“-9”传送信息。
killall:可以清除进程及进程相关的子进程。
动态监控进程top
top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top执行一段时间可以更新正在运行的进程。退出top按q键或ctrl+c键即可。
1、监视特定用户
top:输入此命令,按回车键,查看执行的进程。
u:然后输入"u"回车,再输入用户名,即可。
2、终止指定的进程
top:输入此命令,按回车键,查看执行的进程。
k:然后输入"k"回车,再输入要结束的进程ID号。
3、指定系统状态更新的时间
top -d 10:指定系统更新进程的时间为10秒。
设置系统日期
1、date命令:显示系统的时间。可以在直接输入"date"命令。来查看系统的时间。
2、利用date命令来更改系统的时间。
date MMDDHHMMCCYY.SS:意思是指月月日日时时分分年年年年.秒秒。
3、查看月历:
cal 3 2002:查看2002年3月的月历。
4、查看年历:
cal 2008:查看2008的年历。