zoukankan      html  css  js  c++  java
  • 前后进程切换-nice进程优先级-screen后台执行命令

    前后台进程

    前台进程:在终端中运行的命令,一旦这个终端关闭,这个进程也随之消失;

    后台进程:守护进程(Daemon),运行在后台的进程,不受终端控制,不需要跟终端交互,如,Web服务器的httpd等;

    跟系统任务相关的几个命令:

    &

    用在一个命令的最后,可以把这个命令放到后台执行.

    ctrl + z

     将一个正在前台执行的命令放到后台,并且暂停.

    jobs

    查看当前有多少在后台运行的进程.它是一个作业控制命令

    fg(foreground process)

     将后台中的命令调至前台继续运行, 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)  

    bg(background process)

    将一个在后台暂停的命令,变成继续执行; 如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

    举例

     Ctrl+z暂停并将vim a.txt放到后台

    [root@tzPC ~]# vim a.txt
    
    [1]+  Stopped                 vim a.txt

     状态变为T

    [root@tzPC ~]# ps -aux | grep vim
    root       3892  0.1  0.2 149148  4920 pts/0    T    18:37   0:00 vim a.txt
    root       3915  0.0  0.0 112712   960 pts/1    R+   18:37   0:00 grep --color=auto vim

     查看后台进程

    [root@tzPC ~]# jobs
    [1]+  Stopped                 vim a.txt

      将后台挂起的进程恢复到前台运行

    [root@tzPC ~]# fg 1

     

     进程优先级管理

     优先级取值范围-20~19,越小优先级越高,默认是0

    命令1:nice  指定程序的运行优先级

    格式:nice -n command

    命令2:renice   改变程序的运行优先级

    格式:renice -n pid

    举例

     指定运行vim的优先级为5

    nice -n 5 vim a.txt

     ctral+z挂起

    查看进程ID

    ps -aux | grep vim

      查看优先级

    top -p 3985

     

      修改进程优先级

    renice -10 3985

    划重点!

    使用screen后台实时执行备份命令

    Screen有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中能操作一个像SSH/telnet那样的连接。

    实战场景:公司晚上要备份1T数据,在xshell上直接执行备份脚本back.sh可行吗?或者直接运行back.sh&放到后台运行可以吗?关闭xshell后back.sh&还在后台执行吗?

    答:xshell长时间连接,如果本地网络偶尔断开或xshell不小心关闭,都将让备份命令停止运行。

    安装screen

     yum -y install screen

     安装完成后输入screen会创建一个新的ssh窗口

    在这个窗口vim a.txt 输入某些内容后ctrl+z挂起,然后按住ctrl+a+d,这个screen就会被分离出来,回到最开始的终端窗口

    [root@tzPC ~]# screen
    [detached from 4044.pts-0.tzPC]

     查看挂起的会话

    [root@tzPC ~]# screen -ls
    There is a screen on:
        4044.pts-0.tzPC    (Detached)
    1 Socket in /var/run/screen/S-root.

     进入挂起的会话

    screen -r 4044

     退出会话

    exit

    常用screen参数

    screen -S test    新建一个叫test的会话

    screen -ls        列出当前所有的会话

    screen -r test     回到test会话

    screen -d -r test  结束当前会话并回到test会话

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    ISBN号码
    计数问题
    小玉在游泳
    数字反转
    单调队列(学习笔记)
    LCA(学习笔记)
    emacs配置文件
    线段树(学习笔记)
    RMQ问题 ST算法(学习笔记)
    Lucas卢卡斯定理(学习笔记)
  • 原文地址:https://www.cnblogs.com/tz90/p/13289340.html
Copyright © 2011-2022 走看看