工作管理——jobs命令
工作管理简介
因为处理后台进程的命令为jobs,所以把后台进程处理称作工作管理。
后台管理中的注意事项:
- 前台是指可以操控和执行命令的这个环境,后台的进程可以自由运行,不能用ctrl+c来终止,只能用fg/bg来调用。
- 当前的登录终端,只能管理当前的终端的工作,而不能管理其他的登录终端的工作。
- 放入后台的命令必须可以持续运行一段时间。
- 放入后台的命令不需要和前台 用户有交互,否则放入后台也只会停止运行。
怎么把服务放入后台
- 在命令后面加上"空格&"。
[root@ddkk.com ~]# tar -zcf etc.tar.gz /etc &
[1] 2590
[root@ddkk.com ~]# tar: 从成员名中删除开头的“/”
jobs
[1]+ 运行中 tar -zcf etc.tar.gz /etc &
- 在命令执行时按ctrl+z,命令会暂停并且进入后台。
后台命令管理
查看后台的进程
命令格式:
[root@ddkk.com ~]# jobs -l
#"-l"选项用来查看进程的PID
将后台暂停的工作恢复到前台执行
[root@ddkk.com ~]# fg %工作号
#"%工作号"是jobs中显示的序号
让后台的工作开始执行
[root@ddkk.com ~]# bg %工作号
例:bg
[root@ddkk.com ~]# tar -zcf root.test.tar.gz /
tar: 从成员名中删除开头的“/”
^Z
[1]+ 已停止 tar -zcf root.test.tar.gz /
[root@ddkk.com ~]# bg %1
[1]+ tar -zcf root.test.tar.gz / &
[root@ddkk.com ~]# jobs
[1]+ 运行中 tar -zcf root.test.tar.gz / &
[root@ddkk.com ~]# kill -9 2618
[root@ddkk.com ~]# jobs
[1]+ 已杀死 tar -zcf root.test.tar.gz /
后台命令脱离登录终端运行
如果把命令放入后台,命令只能依赖当前终端运行,终端关闭,服务也就终止了,那如果有一些需要长期在后台运行的命令怎么办呢。
- 将需要在后台执行的命令放入/etc/rc.d/local文件,让系统在启动时执行这个后台程序。
- 使用系统定时任务,让系统在指定的时间执行需要的后台命令,这样的后台命令不依赖登录终端。
- 使用nohup命令。
nohup命令的作用就是让后台在离开操作终端时,也能正确执行。
命令格式:
[root@ddkk.com ~]# nohup [命令] &