任务管理是用在 bash 环境中的,也就是说【当我们登录系统获取 bash shell 后,再单一终端下同时执行多个任务的操作管理】
执行 bash 的任务管理必须要注意到的限制:
[root@study ~] tar -zpcf /tmp/etc.tar.gz /etc &
完成时的提示:
[1]+ Done tar -zpcf /tmp/etc.tar.gz /etc
#[1]是job number 代表job1
# +代表最近一个被丢到后台的任务
[root@study ~] vim ~/bashrc
#按下[Ctrl]+z
[1]+ Stopped vim ~/bashrc
[root@study ~] #取得前台操控权
jobs命令主要用于显示系统中的任务列表及其运行状态
[root@study ~] jobs [参数] [目录]
-l : 显示作业列表时包括进程号
-n : 显示上次使用jobs后状态发生变化的作业
-p : 显示作业列表时仅显示其对应的进程号
-r : 仅显示运行的(running)作业
-s : 仅显示暂停的(stopped)作业
范例:
查看目前的bash当中,所有的任务,与对应的PID
[root@study ~] jobs -l
[1]- 14566 Stopped vim ~/bashrc
[2]+ 14567 Stopped find / -print
# -代表最近第二个被放置到后台中的任务号码
# +代表最近被放到后台的任务号码
fg命令用于将后台作业(在后台运行的或者在后台挂起的作业放到前台终端运行
[root@study ~] fg [参数]
作业标识 指定要放到前台的作业标识号
fg举例:使用fg命令将任务号为1的任务从后台执行转换到前台执行:
[root@linuxcool ~] fg 1
bg命令用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号&的效果是相同的,都是将其放到系统后台执行
[root@study ~] bg [参数]
作业标识 指定需要放到后台的作业标识号
bg举例:
使用bg命令将任务号为1的任务放到后台继续执行:
[root@linuxcool ~] bg 1
bg举例:
使用bg命令与在指令后面添加符号”&”的效果是一样的,使用&将find / -name password放到后台执行:
[root@linuxcool ~] find / -name password &
linux系统中kill命令用来删除执行中的程序或工作
kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业
[root@study ~] kill [参数] [进程号]
-l : 列出系统支持的信号
-s : 指定向进程发送的信号
-a : 处理当前进程时不限制命令名和进程号的对应关系
-p : 指定kill命令只打印相关进程的进程号,而不发送任何信号
范例:
[root@linuxcool ~] ps
PID TTY TIME CMD
1951 pts/0 00:00:00 bash
2446 pts/0 00:00:00 ps
#查看bash的进程ID为1951,然后输入:
[root@linuxcool ~] kill -9 1951
# -9这个信号通常是在强制删除一个不正常的任务
# -15是以正常步骤结束一项任务(默认值)
&可以将bash的任务放置bash后台
at命令可将任务放置到系统后台
nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。
nohup可在脱机或注销系统后,还能够让任务继续执行
[root@linuxcool ~] nohup [参数] #在终端前台中任务
[root@linuxcool ~] nohup [参数] & #在终端后台中任务
--help : 在线帮助
--version : 显示版本信息
使用nohup命令在后台运行程序:
[root@linuxcool ~] nohup bash linuxcool.sh &
想让终端后台的任务在你注销后还能继续执行,那使用【nohup】并搭配 & 是不错的选择