bash-程序-查询或清除端口占用及判断程序是否运行

0、根据名字查找程序是否运行

ps -ef |  grep redis

1、查询端口号占用,根据端口查看进程信息

[bash]
[root@server2 ~]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE NODE NAME
httpd   5014   root    3u  IPv4  14346       TCP server2:http (LISTEN)
[/bash]

2、根据进程号查看进程对应的可执行程序 
ps -f -p 进程号

[bash]
# ps -f -p 5014
UID        PID  PPID  C STIME TTY          TIME CMD
root      5014     1  0 17:26 ?        00:00:00 /usr/local/apache/bin/httpd -k
[/bash]

3、根据端口号得到其占用的进程的详细信息
这一步骤效果 等价于 刚才上面提到的 第一和第二 两个步骤之和

[bash]
netstat -tlnp|grep 80
tcp        0      0 192.168.33.10:80            0.0.0.0:*                   LISTEN      5014/httpd
tcp        0      0 0.0.0.0:48054               0.0.0.0:*                   LISTEN      5386/java
[/bash]

4、根据可执行程序查看动态链接 
ldd 可执行文件名

[bash]
ldd  /usr/local/apache/bin/httpd
linux-vdso.so.1 =>  (0x00007fff9dc90000)
libaprutil-0.so.0 => /usr/local/apache/lib/libaprutil-0.so.0 (0x00002af026fcd000)
[/bash]

5、手工终止进程的运行

[bash]
kill 5014
# 如果终止不了,可以强制终止
kill -9 5014
lsof -i:80
[/bash]

参考 自 http://linux.it.net.cn/CentOS/fast/2015/1014/18049.html