前后进程切换-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会话

 

posted @ 2020-07-12 18:35  努力吧阿团  阅读(305)  评论(0编辑  收藏  举报