目录
1、工作管理简介
工作管理值得是在单个登录终端中(也就是登录的shell界面中)同时管理多个工作的行为。
后台管理有几个事项需要大家注意:
1、前台是指当前可以操控和执行命令的这个操作环境;后台是指工作可以自行运行,但是不能直接用 Ctrl+C
快捷键来中止它,只能使用 fg/bg 来调用工作。
2、当前的登录终端只能管理当前终端的工作,而不能管理其他登录终端的工作。比如 tty1 登录的终端是不能
管理 tty2 终端中的工作的。
3、放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作它。
4、放入后台执行的命令不能和前台用户有交互或需要前台输入,否则只能放入后台暂停,而不能执行。比如 vi
命令只能放入后台暂停,而不能执行,因为 vi 命令需要前台输入信息;top 命令也不能放入后台执行,而
只能放入后台暂停,因为 top 命令需要和前台交互。
2、工作管理方法
把进程放入后台
"命令 &"
#在命令后面加入 空格 &
#把命令放入后台,并在后台执行
#top
#按下ctrl+z快捷键,放在后台暂停
【例 1】
[root@localhost ~]#top
#在top命令执行的过程中,按下Ctrl+Z快捷键
[1]+ Stopped top
#top命令被放入后台,工作号是1,状态是暂停。而且,虽然top命令没有结束,但也能取得控制台权限
【例 2】
[root@localhost ~]# tar -zcf etc.tar.gz /etc
#压缩一下/etc/目录
tar:从成员名中删除开头的"/"
tar:从硬链接目标中删除开头的"/"
^Z
#在执行过程中,按下Ctrl+Z快捷键
[2]+ Stopped tar-zcf etc.tar.gz/etc
#tar命令被放入后台,工作号是2,状态是暂停
每个被放入后台的命令都会被分配一个工作号。第一个被放入后台的命令,工作号是 1;第二个被放入后台的命令,工作号是 2,
以此类推。
查看后台的工作
[root@localhost ~]# jobs -l
[1]+ 4772 Stopped (signal) top
#jobs [-l]
#选项:
-l:显示工作的PID
#注: "+"号代表最近一个放入后台工作,也是工作恢复时,默认恢复的工作。"-"号代表倒数第二个放入后台的工作
将后台暂停的工作回复到前台执行
[root@localhost ~]# fg %工作号
#参数:
-%工作号:%号可以省略,注意工作号和PID的区别
将后台暂停的工作恢复到后台执行
[root@localhost ~]# bg %工作号
#注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行
工作号
[root@localhost ~]# jobs
[1]- Stopped top
[2]+ Stopped top
在打印jobs时 第一个参数为工作号
3、后台命令脱离终端
把命令放入后台,只能在当前登录终端执行。一旦退出或关闭终端,后台程序就会停止。
在关闭终端时系统会默认发送一个SIGHUB信号,把正在运行的程序关闭
后台命令脱离登录终端执行的方法
1、把需要在后台执行的命令加入 /etc/rc.local 文件,让系统在启动时执行这个后台程序。这种方法的问题是,服务器是不能随便重
启的,如果有临时后台任务,就不能执行了。
2、使用系统定时任务,让系统在指定的时间执行某个后台命令。这样放入后台的命令与终端无关,是不依赖登录终端的。
3、使用 nohup 命令。
nohup命令
[root@localhost ~]# nohup [命令] &