Linux任务调度和进程管理

来源:互联网 发布:网络电视看电视直播 编辑:程序博客网 时间:2024/06/06 08:50

任务调度命令

        概述:任务调度:是指系统在某个时间执行的特定的命令或程序。任务调度分类:

        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的年历。