Linux之任务管理

今天接着上次的《Linux之什么是进程》继续讲,这次要讲的是任务管理,类似于windows系统中的任务管理器,为什莫要有任务管理呢,因此在大部分时候我们都是需要在单一终端下同时执行多个任务的,这个时候就需要对这些任务进行操作管理,可能你会问:上一篇文章中明明提到了Linux系统默认提供了6个命令行登录界面,我可以分别用不同的登录界面来处理不同的问题啊,其实你这么想没有问题,说明你真的很会思考,但是Linux还有这样一个规定,在/etc/security/limits.conf文件中是可以设置用户同时登录的连接数的,假如此时你的用户被设置为仅能以一个连接来登录呢,你怎么办???
一、任务管理初印象
在这里我将使用者当前正在操作的命令符界面称之为前台,将其他已经暂停或者也需要运行的任务放到后台,特别强调:放入后台 的任务,它必须不能够与用户进行交互,我解释一下这句话的含义,举例来说,一个vim任务绝对不可能在后台里面执行,知道为什莫吗?因为你都没有输入信息它凭什么可以运行。还有一点是要注意的,**放入后台中的进程是不可以直接用【ctrl+c】来终止的。**这里还有几条bash的任务管理所要注意的限制,很好理解大家看一看:
1)这些任务所触发的进程必须是来自于你shell的子进程(各管各的)
2)前台:可以控制与执行命令的这个环境称之为前台的任务
3)后台:可以自动执行的任务,并且无法使用【CTRL+c】来终止,可以使用bg、fg来调用后台任务
4)后台中执行的进程不能等待terminal或shell的输入
二、任务管理的常用命令
刚刚上面也已经提到了后台任务的状态可以是运行的,也可以是暂停的,那么是如何实现这些状态的转变呢?主要是通过以下几个命令的使用:
1)【&】:直接将命令丢到后台中执行
关于这个命令上一篇文章中我已经讲过,并且做了示范,如果大家觉得需要了解一下,可以点击后面的链接去学习Linux之什么是进程,这部分内容在文章的最后一幅图片下面。
在这里插入图片描述
我们通过图片对这个命令的内容进行分析:注意看最上面的那两行,输入命令之后,可以看到bash给予了这个命令一个【任务号码(job number)】,就是第二行开头的【4】,后面的那个6355则是该命触发的PID ,然后你可以看到我可以继续操作bash,还查看了文件呢,说明复制的任务确实已经放到了后台了。
2)【ctrl+z】:将目前的任务丢到后台中【暂停】
在这里插入图片描述
这里可以看到我将vi命令使用【CTRL+z】暂停8后台了,已经出现了暂停任务标识,下面我可以继续执行FIND命令,说明我已经取得了前台的控制权。此时可以使用命令【jobs】 查看当前的后台任务状态
在这里插入图片描述
3)【fg】:将后台的任务放到前台处理
在这里插入图片描述
4)【bg】:让后台的任务在后台变成运行中
在这里插入图片描述
5)【kill】:杀进程
在这里插入图片描述
在这里插入图片描述
三、脱机管理
假设,有这样一个任务,要执行很长时间不能中断,而且还不能被放置到后台,就像你使用远程连接处理问题时,在任务还未结束的时候你脱机了,这个时候任务就会被中断,所以这时可以有两种方法,一是使用之前讲的【at】,二是使用【nohup】命令。这个nohup可以在脱机或者注销系统后,仍旧让任务继续执行
在这里插入图片描述
在这里创建了一个sleep500.sh的脚本,然后给所有用户sleep500.sh的可执行权限,接将该脚本放到后台执行,此时如果你再次登录使用【pstree】查看进程,会发现这个脚本还在执行中,这就是脱机管理。
今天的内容就暂且讲到这里,再见

猜你喜欢

转载自blog.csdn.net/Gao068465/article/details/107220947
今日推荐