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

 

 kill关闭进程

kill [进程号] 关闭单个进程

killall 和pkill 关闭指定名字的进程

kill -l 列出所有支持的信号

常用kill 9

[root@tzPC ~]# kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX    

  常见使用的信号,网络编程会经常使用

信号编号  信号名
1)SIGHUP     重新加载配置
2)SIGINT      键盘中断  crtl+c
3) SIGQUIT     退出
9)SIGKILL      强制终止
15)SIGTERM    终止(正常结束),缺省信号
18)SIGCONT    继续
19)SIGSTOP     停止
20) SIGTSTP     暂停 crtl+z

  例

[root@tzPC ~]# ps -aux | grep a.txt
root       3892  0.0  0.2 149148  4920 pts/0    T    18:37   0:00 vim a.txt
root       3943  0.0  0.0 112712   968 pts/0    R+   18:53   0:00 grep --color=auto a.txt
[root@tzPC ~]# kill -9 3892
[root@tzPC ~]# killall sshd
[root@tzPC ~]# pkill sshd

 

 进程优先级管理

 优先级取值范围-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

 前后进程切换-nice进程优先级-screen后台执行命令_第1张图片

  修改进程优先级

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会话

 

你可能感兴趣的:(前后进程切换-nice进程优先级-screen后台执行命令)