工作管理简介
工作管理指的是在单个登陆终端中(也就是登陆的shell界面中)同时管理多个工作的行为。
注意事项:
当前的登陆终端,只能管理当前终端的工作,而不能管理其他终端的工作;
放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作;
放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行。
工作管理方法
1、把进程放入后台
[root@localhost ~]# tar -zcf etc.tar.gz /etc &
# 把命令放入后台,并在后台执行
top
# 按下 ctrl + z 快捷键,放在后台暂停
注:需要与用户进行交互的命令放到后台不会暂停
2、查看后台的工作
[root@localhost ~]# jobs [-l]
选项:
-l:显示工作的PID
注:“+” 号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。“-” 号代表倒数第二个放入后台的工作。
3、将后台暂停的工作恢复到前台执行
[root@localhost ~]# fg %工作号
参数:
%工作号:%可以省略,但是注意工作号和PID的区别
4、把后台暂停的工作恢复到后台运行
[root@localhost ~]# bg %工作号
注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行
后台命令脱离登陆终端执行
把命令放入后台,只能在当前登陆终端执行,一旦退出或关闭终端,后台程序就会停止。
原因:当我们执行logout命令或者直接关掉终端,系统会给默认把SIGHUP配置文件读取一遍,也就是说向当前终端下的所有后台程序都发送一遍SIGHUP命令,把所有程序都终止掉。
后台命令脱离登陆终端执行的方法
第一种方法是把需要后台执行的命令加入/etc/rc.local文件(推荐)
第二种方法是是系统定时人物,让系统在指定的时间执行某个后台命令(不推荐)
第三种方法是使用nohup命令(推荐)
nohup [命令] &
举例
[root@localhost ~]# vi for.sh
[root@localhost ~]# nohup /root/for.sh &