## 简介 工作管理是指在单个登陆终端中同时管理多个工作的行为。 ## 注意事项 * 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作 。 * 放入后台的命令必须可以持绫运行一段时间,这样我们才能扑 捉和操作这个工作 。 * 放入后台执行的命令不能和前台用户有交互或需要前台输入, 否则放入后台只能暂停,而不能执行。 ## 工作管理方法 把命令放入后台的两种办法 1. 在命令结尾,加 & 来把命令运行状态,放到后台 tar -zcf etc.tar.gz /etc & 2. 在命令运行中,按住ctrl+z,把命令暂停 top #按ctrl+z 3. 将后台暂停的工作恢复到前台执行 fg %工作号 参数: -% 工作号:%可以省略,但是注意工作号和PID的区别。 工作号是1,2,3,不是pid ``` machuangdeMacBook-Pro:~ machuang$ jobs -l [1]- 1640 Suspended: 18 top [2]+ 1758 Suspended: 18 vi 11 ``` 4. 把后台暂停的工作恢复到后台执行 bg %工作号 注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行 直接输入 fg或者bg命令,默认恢复加号的后台命令。 ``` machuangdeMacBook-Pro:~ machuang$ jobs -l [1]- 1640 Suspended: 18 top [2]+ 1758 Suspended: 18 vi 11 machuangdeMacBook-Pro:~ machuang$ fg vi 11 machuangdeMacBook-Pro:~ machuang$ jobs -l [1]+ 1640 Suspended: 18 top ``` ## 后台命令脱离终端运行 把命令放在后台,需要登录终端运行,一旦关闭登录中断,后台命令终止运行。 例如mysql可以作为系统的守护进程,座位linux的服务存在,一直运行。但是自己写的shell或者命令,不会作为服务,那么怎么做呢? ### 后台命令脱离登陆终端执行的方法 • 第一种方法是把需要后台执行的命令加入/etc/rc.local文件 • 第二种方法是使用系统定时任努,让系统在指定的时间执行某个后台命令 • 第三种方法是使用nohup命令 ### nohup 【命令】 & 不挂断地运行命令 举例 ``` * vi for.sh #!/bin/bash for ((i=0;i< = 1000;i=i+1)) do echo 11 >> /root/for.log sleep 10s done * nohup /root/for.sh 8i ```