1. kill
kill: kill命令用了杀死单个进程或者一类进程,杀死进程的过程其实是向进程发送各种不同的控制信号,以实现对进程的管理。
显示当前系统可用信号:
[root@localhost ~]# 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: 中止正在运行的进程 - 相当于ctrl + c
9) SIGKILL: 杀死正在运行的进程
15) SIGTERM: 终止正在运行的进程
18) SIGCONT
19) SIGSTOP
指定信号的方法:
(1) 指定信号的数字标识: 1,2,9
(2) 指定信号的完整名称: SIGHUP, SIGKILL
(3) 信号的简写名称: HUP, KILL, TERM, INT …
向进程发送信号:
kill [-SIGNAL] PID …
终止”名称”之下的所以进程
有些进程会由父进程创建多个子进程,若想处理所有的进程,则可以使用下面的命令:
# killall [-SICNAL] Program
示例:
开启http服务,查看http进程,并杀死所有http进程
# 开启http服务
[root@localhost ~]# systemctl start httpd
# 查看http服务状态
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-08-22 16:32:51 CST; 10min ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 10761 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Tasks: 6
CGroup: /system.slice/httpd.service
├─10761 /usr/sbin/httpd -DFOREGROUND
├─10763 /usr/sbin/httpd -DFOREGROUND
├─10764 /usr/sbin/httpd -DFOREGROUND
├─10765 /usr/sbin/httpd -DFOREGROUND
├─10766 /usr/sbin/httpd -DFOREGROUND
└─10938 /usr/sbin/httpd -DFOREGROUND
Aug 22 16:32:51 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Aug 22 16:32:51 localhost.localdomain httpd[10761]: AH00558: httpd: Could not reliably determine ...age
Aug 22 16:32:51 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
#查看网络连接情况,80端口是否被监听
[root@localhost ~]# ss -lnt | grep -E 80
LISTEN 0 128 :::80 :::*
# 查看http服务进程
[root@localhost conf]# ps -aux | grep -E "httpd"
root 12865 0.0 0.5 224020 5020 ? Ss 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12866 0.0 0.3 226244 3832 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12867 0.0 0.3 226244 3836 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12868 0.0 0.3 226244 3836 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12869 0.0 0.3 226244 3836 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12870 0.0 0.3 226104 3316 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12871 0.0 0.3 226244 3832 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12872 0.0 0.3 226244 3836 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12873 0.0 0.3 226244 3832 ? S 17:25 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12999 0.0 0.3 226104 3316 ? S 17:26 0:00 /usr/sbin/httpd -DFOREGROUND
root 13085 0.0 0.0 112704 972 pts/2 S+ 17:28 0:00 grep --color=auto -E httpd
# 杀死http服务中的某个进程(杀死root用户可将所有进程杀死)
[root@localhost ~]# kill -9 12865
[root@localhost conf]# ps -aux | grep -E "httpd"
root 13180 0.0 0.0 112704 968 pts/2 S+ 17:30 0:00 grep --color=auto -E httpd
# 杀死所有http服务进程
[root@localhost ~]# killall -9 httpd
2. 作业和进程
- 区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。
- 关系:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
- 用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。
前台作业: 通过终端启动,且启动后一直占据终端(glances, dstat等)
后台作业: 可以通过终端启动,但启动后转入后台运行
如何让作业运行于后台?
(1)运行中的作业: Ctrl + z
(2)尚未启动的作业: # COMMAND &
Note: 此类作业虽然被送往后台运行,但其依然与终端相关,如果希望送往后台后,剥离与终端的关系,使用如下命令:# nohup COMMAND &
命令 说明 Ctrl + z 运行中的作业置于后台 command & 将尚未启动的作业置于后台 nohup command & 剥离作业与终端的关系 jobs 查看所有作业 fg [[%]JOB_NUM] 把指定的作业调回前台 bg [[%]JOB_NUM] 让送往后台的作业继续执行 kill [%IOB_NUM] 终止指定的作业
3. 进程优先级调整
静态优先级:100-139
进程默认启动时的nice值为0, 优先级为120;
nice 命令:
nice [OPTION] [COMMAND [AGV]...]
renice命令:
renice [-n] priority pid ...
查看:
ps axo pid, ni, comm...