• 前后台 工作切换---------------Linux 任务管理器(一)


    继续下一章。。。

    发现了一个好东东。就是前后台的切换。例如我们现在要vim一个文件。然后又要查找一些命令的时候,以前不知道,都是退出后,查完了,在vim进入。现在我们可以将该vim拿到后台,然后查完了再唤醒vim。。。。很爽。OK,看程序

    [root@localhost ~]# vim ~/.bashrc
    按下ctrl+z,将vim置于后台,然后再执行一个命令
    [root@localhost ~]# find / -print
    再按下ctrl+z,继续置于后台中
    [root@localhost ~]# jobs -l   查找后台运行的进程
    [1]+ 65226 停止                  vim ~/.bashrc     #  +号表示的是排序,意思当我们fg而不确定指向前台运行哪个命令的时候,默认的都是最后退出的命令
    [2]- 66139 停止                  find / -print
    [root@localhost ~]# fg  
    它默认就会进入 带加号的那个程式,也就是VIM
    当我们要明确进入哪个程式的时候,就可以
    [root@localhost ~]# fg %1
    强行执行第一个程式

    上面就是前后台切换的命令。就几点,ctrl+z将命令置于后台 jobs -l查询后台运行的进程 fg 默认启用最后退出的进程 fg %数字 启用指定的进程

    jobs 命令的参数详解

    上面介绍了,前后台切换,那如果想让某个进程在后台运行的话,需要怎么操作呢?

    启用bg命令

    [root@localhost ~]# find / -perm /7000 > /tmp/text.txt
    find: ‘/proc/6971/task/6971/fdinfo/12’: 没有那个文件或目录
    find: ‘/proc/6983/task/7056/fdinfo/8’: 没有那个文件或目录
    ^Z
    [3]+  已停止               find / -perm /7000 > /tmp/text.txt
    [root@localhost ~]# jobs
    [1]-  已停止               vim ~/.bashrc
    [2]   已停止               find / -print
    [3]+  已停止               find / -perm /7000 > /tmp/text.txt        #ctrl+z,他是停止的
    [root@localhost ~]# jobs ; bg %3 ; jobs                             当我们bg %3  在后台执行3的时候
    [1]-  已停止               vim ~/.bashrc
    [2]   已停止               find / -print
    [3]+  已停止               find / -perm /7000 > /tmp/text.txt
    [3]+ find / -perm /7000 > /tmp/text.txt &
    [1]+  已停止               vim ~/.bashrc
    [2]   已停止               find / -print
    [3]-  运行中               find / -perm /7000 > /tmp/text.txt &      #他开始在后台执行,前面有个运行中,还有就是最后的  &  符号

    Kill命令

    脱机管理问题

    当你远程连接Linux进行工作时,如果你操作命令,在后台运行的时候ctrl+c,这时候如果你因为某些原因脱机了,那么你的工作将会被中断。因为,我们在此操作的时候,指的是工作环境下的前台和后台,而非进程内的后台服务。

    而如果要实现真正的后台运行,则需要用at服务来运行,或者用nohup来执行

    nohub执行的是命令。也就是启用一个线程来执行相关命令。这个命令就是一个脚本命令,而非像上面在工作目录中,直接在bash中内建的命令。有点拗口。。。

    说白了,at,nohub就是启用新线程执行命令服务。

    上文提到的ctrl+z等的前后台切换,是在bash命令中进行的前后切换。

    既然如此,如果你注销或者退出,则bash命令也会随之退出。所以命令就会停止执行。但是如果用at,nohub服务来执行,那你退出,线程依然是在开启的,程序就不会退出执行。

    一个是基础工作环境的bash,一个是基于后台线程的服务。

    运用nohub,首先需要建立一个一个sh的shell脚本。然后才能用nohup 来执行该脚本。前后台的区别就在于&符号

    为了验证,你可以退出后再登入,利用pstree -up查找

    表明确实达到了要求,kill杀死这个进程  14599

    进程观察   ps  top pstree

    [root@localhost ~]# ps -l
    F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
    4 S     0  14620  14616  0  80   0 - 29164 do_wai pts/1    00:00:00 bash
    0 R     0  15401  14620  0  80   0 - 38309 -      pts/1    00:00:00 ps

     

     top 动态观察进程变化    就是任务管理器

    top -d 2

    2秒观察进程信息

    查看某个进程的情况,可以利用$$来找出自己的bash的PID的值,然后top 一下

    [root@localhost ~]# echo $$
    14620
    [root@localhost ~]# top -d 2 -p 14620

    这就是这个进程的相关信息

     pstree

     找出目前系统上已在监听的网络联机及其PID

    [root@localhost ~]# netstat -tulnp       
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
    tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      8138/X              
    tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      8598/dnsmasq        
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7675/sshd           
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      7677/cupsd          
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      8037/master         
    tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
    tcp6       0      0 :::6000                 :::*                    LISTEN      8138/X              
    tcp6       0      0 :::22                   :::*                    LISTEN      7675/sshd           
    tcp6       0      0 ::1:631                 :::*                    LISTEN      7677/cupsd          
    tcp6       0      0 ::1:25                  :::*                    LISTEN      8037/master         
    udp        0      0 192.168.122.1:53        0.0.0.0:*                           8598/dnsmasq        
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           8598/dnsmasq        
    udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd           
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                           7062/avahi-daemon:  
    udp        0      0 127.0.0.1:323           0.0.0.0:*                           7114/chronyd        
    udp        0      0 0.0.0.0:48534           0.0.0.0:*                           7062/avahi-daemon:  
    udp        0      0 0.0.0.0:783             0.0.0.0:*                           6973/rpcbind        
    udp6       0      0 :::111                  :::*                                1/systemd           
    udp6       0      0 ::1:323                 :::*                                7114/chronyd        
    udp6       0      0 :::783                  :::*                                6973/rpcbind     

    dmesg分析系统核心产生的信息

     vmstat  侦测系统资源变化

  • 相关阅读:
    MonkeyScript_API
    APP性能(Monkey)【启动时间、CPU、流量、电量、内存、FPS、过度渲染】
    adb基本命令 & Monkey发生随机事件命令及参数说明
    MonkeyRunner_API
    2021春招冲刺-1218 页面置换算法 | sort的原理 | 语义化标签 | 标签的继承
    2021春招冲刺-1217 线程与进程 | ES6语法 | h5新增标签
    2021春招冲刺-1216 死锁 | 箭头函数 | 内联元素 | 页面渲染
    【unity】旧世开发日志
    HTTP 与HTTPS 简单理解
    GET POST 区分
  • 原文地址:https://www.cnblogs.com/Lonelychampion/p/11413884.html
Copyright © 2020-2023  润新知