1.python利用flask框架和tornado框架搭建api微服务——HelloWorld的实现(一)
2.python利用flask框架和tornado框架搭建api微服务——结合html网页实现get和post(二)
3.python利用flask框架和tornado框架搭建api微服务——连接数据库返回带参求情结果(三)
4.python利用flask框架和tornado框架搭建api微服务——python虚拟机启动API(四)
5.python利用flask框架和tornado框架搭建api微服务——Linux下查看某个端口对应的进程并kill进程的操作(关闭API服务进程)(五)
6.python利用flask框架和tornado框架搭建api微服务——完善API文档以及API调用(六)
自己起了一个python的微服务api端口7000,但是我现在想关闭他,该怎么办呢?
查询端口对应的进程指令是netstat,我们可以在shell环境下netstat help一下,可以查到netstat的所有参数作用,如下
[hadoop@shucang-10 main]$ netstat help
usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [<Socket> ...]
netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
-r, --route display routing table #显示路由表
-I, --interfaces=<Iface> display interface table for <Iface> #显示网络接口表
-i, --interfaces display interface table #显示网络接口表
-g, --groups display multicast group memberships #显示多播组成员
-s, --statistics display networking statistics (like SNMP) #显示网络统计数据,如IP/ICMP/SNMP/..各协议统计。
-M, --masquerade display masqueraded connections #显示伪装的连接
-v, --verbose be verbose #详细信息
-n, --numeric don't resolve names #不做名字解析
--numeric-hosts don't resolve host names #不做主机名解析
--numeric-ports don't resolve port names #不做端口名解析
--numeric-users don't resolve user names #不做用户名解析
-N, --symbolic resolve hardware names
-e, --extend display other/more information #显示更多信息,用户名,inode
-p, --programs display PID/Program name for sockets #显示pid和程序名字
-c, --continuous continuous listing #持续的列出相关信息
-l, --listening display listening server sockets #显示处于监听状态的套接字
-a, --all, --listening display all sockets (default: connected) #显示所有的套接字
-o, --timers display timers #显示计时器
-F, --fib display Forwarding Information Base (default) #使用-rF查看路由表时,显示转发信息
-C, --cache display routing cache instead of FIB #使用-rC查看路由表时,显示详细的路由缓存
-T, --notrim stop trimming long addresses #停止修剪长地址
-Z, --context display SELinux security context for sockets #显示套接字的SELINUX上下文
<Iface>: Name of interface to monitor/list.
<Socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Use '-A ' or '--' ; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
因为我是知道了我的python微服务端口是7000,所以,我直接把端口的netstat -tunlp的结果管道给grep 7000,查询到这个python微服务的进程id为20661。
[hadoop@shucang-10 main]$ netstat -tunlp|grep 7000
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN 20661/python
tcp6 0 0 :::7000 :::* LISTEN 20661/python
其实到这里就可以直接kill -9 20661来关闭该进程了,但是保险起见,还是选择看一下该进程的明细,使用ps指令
[hadoop@shucang-10 main]$ ps --help s
Usage:
ps [options]
Basic options:
-A, -e all processes
-a all with tty, except session leaders
a all with tty, including other users
-d all except session leaders
-N, --deselect negate selection
r only running processes
T all processes on this terminal
x processes without controlling ttys
使用ps -ef | grep python查询下,果然进程id=20661 就是我自己的脚本iot_location_desc_match.py
(base) [hadoop@shucang-10 main]$ ps -ef | grep python
root 1602 1 0 2019 ? 00:40:23 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 1722 1 0 2019 ? 00:00:00 /usr/bin/python /usr/bin/salt-minion
root 2402 1722 0 2019 ? 01:45:20 /usr/bin/python /usr/bin/salt-minion
root 2664 2402 0 2019 ? 00:00:00 /usr/bin/python /usr/bin/salt-minion
hadoop 20661 20006 0 14:28 pts/4 00:00:00 python iot_location_desc_match.py
hadoop 29138 1465 0 15:12 pts/0 00:00:00 grep --color=auto python
直接使用指令kill。
#-9参数表示强行关闭
kill -9 20661
然后再次访问这个python的微服务api的时候,就发现已经访问不了了。