Welcome 微信登录

首页 / 操作系统 / Linux / RHEL6系统进程管理之任务管理

1、先来简单的来理解一下程序与进程的相关概念
程序:供用户使用的一些二进制文件。
进程:程序运行后,被加载到内存中与其相关的一些信息。如进程标识PID、内存占用率等等。
程序是静态的概念,本身作为一种软件资源长期保存,而进程是程序的执行过程,他是动态概念,有一定的生命期,是动态产生和消亡的。
程序和进程无一一对应关系。一个程序可以由多个进程共用。另一方面,一个进程在活动中有可顺序地执行若干个程序。父进程:程序运行时候的第一个进程可以理解为父进程
子进程:由程序进程衍生出来的进程称为子进程
当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。2、任务管理
工作管理是在Bash环境下,在单一终端机接口下同时进行多个工作的行为管理。比如在登陆Bash后,要同时编译软件、复制文件、编辑文件等等,这就是用到工作任务管理了。当然,你也可以多打开几个终端来同时进行上述的工作,但毕竟,终端有时候会被用完,或者是使用数量或连接数受到限制,有可能只能打开一个终端来为你工作。这里面我们还需要来了解一下什么是前台进程与后台进程。
前台:如在shell提示符输入命令后,创建一个子进程,运行命令,shell等待命令退出,然后返回到对用户给出提示符。这条命令与shell异步运行,即在前台运行,用户在空完成之前,不能执行另外一个命令。后台:如在shell提示符输入命令后,若后面跟随一个&,shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户的提示。这条命令与shell同步运行,即在后台运行。但后台进程必须是非交互式的。而后后台的进程是不能用Ctrl+c来终止的。相关的命令
把命令放到后台运行,就是在命令的后面加上“&”进程的暂停与终止
暂停:Ctrl+z
终止:Ctrl+c进程的恢复
恢复到前台继续运行:fg
恢复到后台继续运行:bg查看后台进程:jobs下面我们来举个例子[root@ www.linuxidc.com ~]# cp -r /usr/ /tmp &
[1] 1627这里就是把复制的命令放到后台来操作了,他的PID是1627,任务编号是1[root@ www.linuxidc.com ~]# jobs
[1]+  Running                 cp -i -r /usr/ /tmp &查看到命令正在运行中如果把命令调到前台,就用下面的命令[root@ www.linuxidc.com ~]# fg %1
cp -i -r /usr/ /tmp用Ctrl+z把此命令丢到后台并让其暂停^Z
[1]+  Stopped                 cp -i -r /usr/ /tmp查看任务情况[root@ www.linuxidc.com ~]# jobs
[1]+  Stopped                 cp -i -r /usr/ /tmp让其继续工作[root@ www.linuxidc.com ~]# bg %1
[1]+ cp -i -r /usr/ /tmp &我们看到任务就继续进行了[root@ www.linuxidc.com ~]# jobs
[1]+  Running                 cp -i -r /usr/ /tmp &如果任务执行完成后,再用jobs来查看的话,是有个Done提示[root@ www.linuxidc.com ~]# jobs
[1]+  Done                    cp -i -r /usr/ /tmp特别注意:就算程序被放到后台执行,但如果您的终端断掉的话,后台执行的程序同样会中断。为了解决这个问题,可以通过下面的方法来完善。
1、用计划任务来实现(这个就不多说了,因为很常见)
2、用nohup:格式nohup [指令与参数] &[root@ www.linuxidc.com ~]# nohup cp -r /usr/ /tmp &
[1] 1699
[root@ www.linuxidc.com ~]# nohup: ignoring input and appending output to `nohup.out"[root@ www.linuxidc.com ~]# jobs
[1]+  Running                 nohup cp -r /usr/ /tmp &
[root@ www.linuxidc.com ~]# exit再重新登陆一下[root@ www.linuxidc.com ~]# jobs这时候是看不到东西的,但用ps就能发现了ps -ef |grep cp
root      1699     1 10 22:14 ?        00:00:06 cp -r /usr/ /tmp这个进程ID还是1699哦,和上面的是一样的。这就说明我们虽然终端退出来了,但任务没有中断,依然在继续执行中。Ubuntu 12.04下用Eclipse搭建Python集成开发环境RHEL6系统进程管理之进程观察ps命令相关资讯      RHEL6 
  • 在 RHEL6 上安装 Java  (02/05/2015 13:44:10)
  • RHEL6文字界面安装Gnome桌面  (11/30/2013 08:54:03)
  • RHCE认证之RHEL6进程管理、Cron任  (10/22/2013 11:45:06)
  • Red Hat Enterprise Linux 6.6 正  (10/15/2014 08:05:33)
  • RedHat Enterprise Linux 6.X系统  (10/25/2013 08:42:03)
  • Red Hat Enterprise Linux 6最新测  (10/15/2013 15:53:30)
本文评论 查看全部评论 (0)
表情: 姓名: 字数