iMisty的技术栈

iMisty的技术栈

linux系统管理之工作管理

844
2019-05-16

linux系统管理之工作管理

工作管理简介

  • 工作管理指的是在单个登录终端中(也就是登录的shell界面中)同时管理多个工作的行为

注意事项

  • 当前的登录终端只能管理当前终端的工作,而不能管理其他登录终端的工作

  • 放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作

  • 放入后台执行的命令不能和前台用户有交互或者需要前台输入,否则放入后台只能暂停而不能执行

把进程放入后台

  • tar -zcf etc.tat.gz /etc & 命令后面加上 & 把命令放入到后台,并在后台执行

  • top 执行命令按下ctrl +z快捷键,放在后台暂停;(Ctrl + C终止命令执行)

查看后台的工作

  • jobs -[l] : 选项 -l 显示工作的 PID

  • 如下图top命令是用来查看系统的健康状态的,放入后台会停止,和用户有交互的需要输入的或者需要用户查看的,都无法在后台运行

img

注意:+号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作,-号代表倒数第二个放入后台的工作;

  • 压缩解压缩或者find查找是可以放入到后台的(虽然需要用户查看结果,但是一旦执行就不需要用户交互了)

    • find / -name abc & 从根目录开始查找 abc字符串, 用jobs 命令查看会经历 Running ,Done ,再次查看就不在后台了

将后台暂停的工作恢复到前台执行

  • fg %工作号 ,如果直接执行fg那么恢复由+号标识的命令恢复到前台执行
  • 参数 -%工作号: %可以省略,但是注意工作号和PID的区别;

把后台暂停的工作恢复到后台执行

  1. ctrl + z 暂停任务;
  2. jobs 查看任务,会返回任务编号a以及具体内容;
  3. bg %a 后台继续执行该任务,a 是第2步返回的,不是瞎填的;
  4. 再次 jobs 可以查看任务处于执行状态 Running。
  • bg %工作号, 如果直接执行bg那么恢复由+号标识的命令恢复到后台执行

  • **注意:**后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行,只能使用fg命令恢复到前台执行

  • 例如之前执行的 top命令和vi编辑命令就不可以放在后台执行,只能恢复到前台执行,然后正确操作然后退出即可

后台命令脱离终端

  • 简介:把命令放入后台,只能在当前终端执行,一旦退出或者关闭终端,后台程序就会停止

    • 正常退出终端 logout或者被强制踢出,都会关闭当前终端的后台程序 ,相当于 kill -l 查看的信号1 SIGHUB
    • 关闭终端系统发出SIGHUB 信号,终止当前终端后台任务,重启重新加载配置
  • /usr/local/mysql/bin/mysqld --user=mysql & 启动mysql并且在后台执行,但是该条命令比较特殊不会随着终端的关闭而停止运行,mysql将其作为守护进程daemon启动 ,相当于服务

  • 但在实际的系统管理中添加守护进程比较复杂,并且增加了系统管理的难度,不常使用

后台命令脱离登录终端执行的方法

  • 第一种方法是把需要后台执行的命令加入 /etc/rc.local文件,配置自启动文件,开机自动执行,不需要手动重新启动

  • 里面自带一句 touch /var/lock/subsys/local 用于记录系统启动时间

  • 第二种方法就是使用系统定时任务,让系统在指定的时间执行某个后台命令

  • 这种方法不够稳定,有时候不会生效

  • 第三种方法就是使用 nohup 命令;标准方法让后台任务脱离当前终端
    img