Linux系统管理-工作管理(后台程序管理)

来源:互联网 发布:android编程教程 编辑:程序博客网 时间:2024/06/05 03:22

简介

工作管理指的是在当个登陆终端中同时管理多个工作的行为。

注意事项
- 当前的登陆终端,只能管理当前终端的工作,而不能管理其他登陆终端的工作
- 放入后台的命令必须可以持续运行一段事件,这样我们才能捕捉和操作这个工作
- 放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行。放入后台类似于Windows中的最小化

工作管理的方法

  • 命令 & : 把命令放入后台,并在后台执行
  • ctrl + z : 按下 ctrl + z快捷键,放在后台暂停

后台执行ping命令,发送20个数据包,并将结果保存到文件:

ping -c 20 www.baidu.com > baidu.ping & 

如果使用 ctrl + z,进程会放到后台,并暂停

[root@localhost ~]# ping -c 20 www.baidu.com > baidu.ping ^Z[1]+  Stopped                 ping -c 20 www.baidu.com > baidu.ping

jobs 命令

显示所有后台的进程

参数:
- -l : 显示工作的PID

PS: + 表示最近一个放入后台的工作,页就是工作恢复时,默认恢复的工作。- 代表倒数第二个放入后台的工作

[root@localhost ~]# jobs[1]+  Stopped                 ping -c 20 www.baidu.com > baidu.ping[2]-  Running                 ping -c 20 www.baidu.com > baidu.ping &

恢复到前台执行

  • fg %工作号

将后台正在运行的进程后者暂停的进程恢复到前台运行状态。% 可以省略
工作号可以用 +- 表示,也可以不写,默认是+

[root@localhost ~]# fg %1ping -c 20 www.baidu.com > baidu.ping

恢复到后台执行

  • bg %工作号

将后台暂停的进程恢复到在后台运行,对已经在运行的进程不生效
后台恢复执行的命令是不能和前台有及交互的,否则不能恢复到前台执行

[root@localhost ~]# bg 1 [1]+ ping -c 20 www.baidu.com > baidu.ping &

如果该进程已经在后台运行,则不会生效:

[root@localhost ~]# bg 1 -bash: bg: job 1 already in background

脱离终端

命令放入后台执行,只能在当前登录的终端只当,一旦用户退出当前终端后台程序就会终止。使后台进程脱离终端执行的方法有:

  • 第一种方法是把需要后台执行的命令加入/etc/rc.local文件。参考 Linux服务管理—系统运行级别、rpm启动与自启动、源码包的启动与自启动
  • 第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令
  • 第三种方法是使用nohup命令,标准方法

nohup 命令

  • nohup 命令 &
    是命令脱离终端,在终端关闭后依然能够存在
[root@localhost ~]# nohup ping -c 10  www.baidu.com > baidu.ping &[1] 28065[root@localhost ~]# nohup: 忽略输入重定向错误到标准输出端
原创粉丝点击