Linux管理进程的最好方法就是使用命令行下的系统命令。Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup
  4.3.1 at:定时运行命令
  作用:at命令在指定时刻执行指定的命令序列。
  格式:
  at [-V] [-q x] [-f file] [-m] time
  atq [-V] [-q x]
  atrm [-V] [-q x] job
  batch [-V] [-f file] [-m]
  主要选项如下。
  — -V:显示作业将被执行的时间。
  — -q:选用q参数则可选队列名称,队列名称可以是azAZ之间的任意字母。队列字母顺序号越大则队列优先级别越低。
  — -f:从文件中读取命令或shell脚本,而非在提示后指定它们。
  — -m:执行完作业后发送到用户。
  — time:设定作业执行的时间。time参数可以是下面格式中的任何一种。
  ? HH:MM格式——04:00,代表4:00AM。如果时间已过,就会在第二天的这一时间执行。
  midnight代表12:00AMnoon代表12:00PMteatime代表4:00PM
  ? 英文月名日期年份格式——January 15 2005,代表2005115日。年份可无。
  ? MMDDYYMM/DD/YYMM.DD.YY格式——011505,代表2005115日。
  ? now +时间格式——时间以minuteshoursdaysweeks为单位。如now + 5 days
代表命令应该在5天之后的此时此刻执行。偏移量的格式为时间+偏移量,单位是minuteshoursdays
  说明:at命令实际上是一组命令集合。at命令在指定时刻执行指定的命令序列。atq查询已经设定的命令序列。atrm删除已经设定的命令序列。batch当系统负载低于一个设定值(0.8),执行设定的命令序列。应用实例如下。
  (1)让系统在两天后的1730执行文件data中指定的作业,使用命令:
  #at -f data 15:30 +2 days
  linux vi命令详解菜鸟教学(2)配置batch作业。
  要在系统平均页载量降到0.8以下时执行某项一次性的任务,使用batch命令。键入batch命令后,“at>”提示就会出现。键入要 执行的命令,按“Enter”键,然后键入“Ctrl+D”。你可以指定多条命令,方法是键入每一条命令后按“Enter”键。键入所有命令后,按 Enter”键转入一个空行,然后再键入“Ctrl+D”。或者你也可以在提示后输入shell脚本,在脚本的每一行后按“Enter”键,然后在空行 处键入“Ctrl+D”来退出。系统平均页载量一降到0.8以下,这组
命令或脚本就会被执行。如果这组命令或脚本试图在标准输出中显示信息,该输出会用电 子邮件方式被邮寄给用户。
  (3)进阶应用:控制对atbatch的使用。
  通过/etc/at.allow/etc/at.deny文件可以用来限制对atbatch命令的使用。这两个使用控制文件的格式都是每行 一个用户。两个文件都不允许使用空白字符。如果控制文件被修改了,at守护进程不必被重启。每次用户试图执行atbatch命令时,使用控制文件都会被 读取。不论控制文件如何规定,超级权限用户总是可以执行atbatch命令。如果at.allow文件存在,只有其中列出的用户才能使用at batch命令,at.deny文件会被忽略。如果at.allow文件不存在,所有在at.deny文件中列出的用户都被禁止使用atbatch 令。
  4.3.2 bg:后台运行命令
  作用:bg命令使一个被挂起的进程在后台执行。
  格式:bg
  该命令无参数。
  使用说明:Linux作为一个多任务环境,用户会同时执行多项任务,例如,查看系统情况、备份资料、编辑文件和打印文件等。耗时长的任务不应该在前台任务中执行,而应该交给后台任务去执行。这样前台任务可继续正常运作其他的操作,不用等待。
  应用实例如下。
  (1)如果要将一个大目录的文件进行排序后,将结果输入到一个文件中,可以使用命令:
  #du –a / | sort –rn > /tmp/du.sorted
  (2)由于这个命令执行时间很长,可以把它放在后台运行。使用组合键“Ctrl+Z”。然后使用bg命令。如果想直接把这个命令放在后台执行,可以在命令后使用“&”符号:
  #du –a / | sort –rn > /tmp/du.sorted &
  [1] 237
  4.3.3 fg:挂起程序
  作用:fg命令使一个被挂起的进程在前台执行。
  格式:fg -[job-spec]
  [job-spec]:后台任务号码。
  说明:fg命令和bg命令是相对应的。如果想查看后台程序运行情况,可以使用fg命令把它调回前台查看。bg命令可以使多个进程放到后台中执行。
  应用实例如下。
  使用fg命令时,要加入后台任务号码,如果不加任何号码,则所变动的均是当前任务。
  #du –a / | sort –rn > /tmp/du.sorted &
  [1] 237
  #fg 1
4.3.4 jobs:显示后台程序
  作用:jobs命令显示后台任务的执行情况。
  格式:jobs [选项] [jobspec]
  主要选项如下。
  — -l:长输出格式,显示全部内容。
  — -n:不输出信息。
  — -p:只输出进程号。
  — -r:只输出运行的进程。
  [jobspec]:后台任务号码。
  应用实例如下。
  先把两个进程放在系统后台运行,然后使用jobs命令查看后台任务的执行情况:
  #du -a /etc > user.data &
  [1] 233
  # find / -name core -type f -ls > core.data &
  [2] 234
  #jobs –l
  [1] + 237 Running du -a /etc > user.data
  [2] - 238 Running find / -name core -type f -ls > core.data
  说明:上面的当前任务是“du -a /etc > user.data”,因为后台任务号码是“[1]”。当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码“[2]”的后台任务。即当前任务是动态的。
  4.3.5 kill:终止进程
  作用:kill命令终止一个进程。
  格式:kill [-s signal |-p] [-a]pid
  kill -l [ signal ]
  主要选项如下。
  — -s:指定发送的信号。
  — -p:模拟发送信号。
  — -l:指定信号的名称列表。
  — pid:要终止的进程的ID号。
  — signal:表示信号。
  说明:kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9)信息尝试强制删除程序。kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标志号,然后系统内 核就可以对进程标志号指定的进程进行操作。当需要中断一个前台进程的时候,通常使用Ctrl+C组合键;但是对于一个后台进程,就不是一个组合键所能解决 的了,这时就必须使用kill命令。
应用实例如下。
  命令执行过程如果出错,用户可用“kill”来结束任务。对于在后台运行的进程,可以使用kill命令终止:
  #du –a / | sort –rn > /tmp/du.sorted &
  [1] 237
  #kill 237
  或者使用命令:
  #du –a / | sort –rn > /tmp/du.sorted &
  [1] 237
  #kill %1
  对于僵尸进程,可以用kill-9来强制终止退出。
  比如一个程序已经彻底死掉,如果kill不加信号强度没有办法退出,最好的办法就是加信号强度-9,后面要接杀父进程;比如:
  [root@localhost ~]# ps aux |grep gaim
  beinan 5031 9.0 2.3 104996 17484 ? S 13:23 0:01 gaim
  root 5036 0.0 0.0 5160 724 pts/3 S+ 13:24 0:00 grep gaim
  kill命令族成员简介如下。
  终止一个进程或终止一个正在运行的程序,一般通过killkillallpkillxkill等进行。比如一个程序已经死掉,但又不能退 出,这时就应该考虑应用这些工具。killall通过程序的名字,直接杀死所有进程,pkillkillall的应用方法差不多,也是直接杀死运行中的 程序。如果你想杀掉单个进程,请用kill来杀掉。xkill是在桌面上用的杀死图形界面的程序。比如当firefox出现崩溃不能退出时,单击鼠标就能 杀死firefox。当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃,一点就OK了。如果你想终止xkill,就单击右键取消。
  4.3.6 crontab:安装、删除或列出任务表
  作用:crontab命令用于安装、删除或者列出用于驱动cron后台进程的任务表。然后,该配置由cron守护进程在设定的时间执行。
  格式:crontab [-u user] 文件
  crontab [-u user] { -e | -l | -r }
  主要选项如下。
  — -e:执行文字编辑器来设定时程表,默认的文字编辑器是vi
  — -r:删除目前的时程表。
  — -l:列出目前的时程表。
  — [-u user]:指定要设置的用户名称。
  crontab文件的格式是:
  minute hour day month dayofweek command
  minute——分钟,是059之间的任何整数。hour——小时,是023之间的任何整数。day——日期,是131之间的任何整数 (如果指定了月份,必须是该月份的有效日期)month——月份,是112之间的任何整数(或使用月份的英文简写如janfeb) dayofweek——星期,是07之间的任何整数,这里的07代表星期日(或使用星期的英文简写如sunmon)command——要执行的 命令(可以是ls之类的命令,也可以是执行你自行编写的脚本的命令)。应用实例如下。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。