首先判断项目是否启动成功
可以根据端口号、进程名等查看
看内网是否能访问
curl localhost:8161
判断项目是否开启远程访问,很多项目都只是开通了127.0.0.1地址,只有内网能访问。一般我们通过修改配置文件做到。
# 这种只能被内网访问
[root@VM-0-14-centos bin]# netstat -tunlp|grep 8161
tcp6 0 0 127.0.0.1:8161 :::* LISTEN 24120/java
# 这种可以被外网访问
[root@VM-0-14-centos bin]# netstat -tunlp|grep 8161
tcp6 0 0 :::8161 :::* LISTEN 11658/java
# 如果没有出现 "::" 很多时候,你需要注释项目配置文件中的类似于这样的配置文件:
<property name="host" value="127.0.0.1"/> # activemq jetty.xml
bind 127.0.0.1 -::1 #redis.conf
看是否是网络问题
ping IP地址
看安全策略
telnet IP地址 端口
# 如果不通,我们则需要去云服务器的控制台查看安全策略
netstat -tunlp | grep <端口号>
netstat -tunlp | grep <端口号>
[root@VM-0-14-centos bin]# netstat -tunlp|grep 8161
tcp6 0 0 :::8161 :::* LISTEN 11658/java
# 注意这个"::",它表示可以被外界访问
# 如果没有出现 "::" 很多时候,你需要注释项目配置文件中的类似于这样的配置文件:
<property name="host" value="127.0.0.1"/> # activemq jetty.xml
bind 127.0.0.1 -::1 #redis.conf
# 不注释的效果
[root@VM-0-14-centos bin]# netstat -tunlp|grep 8161
tcp6 0 0 127.0.0.1:8161 :::* LISTEN 24120/java
lsof -i:端口号
lsof -i:8161
# => ls + of
# => list open files 列出被各种进程打开的文件信息
# => lsof -i 显示所有打开8161端口的进程(在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件)
# 仅内网访问时
[root@VM-0-14-centos bin]# lsof -i:8161
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 24120 root 161u IPv6 457048659 0t0 TCP VM-0-14-centos:patrol-snmp (LISTEN)
# 可供外网访问
[root@VM-0-14-centos bin]# lsof -i:8161
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15275 root 161u IPv6 460627948 0t0 TCP *:patrol-snmp (LISTEN)
# 注意这个"*",它表示可以被外界访问
# 如果没有出现 "*" 很多时候,你需要注释项目配置文件中的类似于这样的配置文件:
<property name="host" value="127.0.0.1"/> # activemq jetty.xml
ps -ef | grep <进程名称>
ps -ef | grep demo
# 普通版
root@VM-0-14-centos bin]# ps -ef | grep demo
root 1595 1 0 10:20 ? 00:01:21 java -jar demo-0.0.1-SNAPSHOT.jar
root 11984 4946 0 19:30 pts/0 00:00:00 grep --color=auto demo
# 升级版(去掉干扰项)
[root@VM-0-14-centos bin]# ps -ef | grep demo | grep -v grep
root 1595 1 0 10:20 ? 00:01:20 java -jar demo-0.0.1-SNAPSHOT.jar
| UID | PID | PPID | C | STIME | TTY | TIME | CMD |
|---|---|---|---|---|---|---|---|
| root | 1595 | 1 | 0 | 10:20 | ? | 00:01:20 | java -jar demo-0.0.1-SNAPSHOT.jar |
解释一下常见的参数
所以我们一般都是根据CMD这列来过滤的
jps -l
# 普通版
[root@VM-0-14-centos bin]# jps -l
20274 sun.tools.jps.Jps
1595 demo-0.0.1-SNAPSHOT.jar
15275 /usr/local/activemq/apache-activemq-5.16.5//bin/activemq.jar
# 升级版(类似于 ps -ef | grep java | grep -v grep
[root@VM-0-14-centos bin]# jps -l | grep -v jps
1595 demo-0.0.1-SNAPSHOT.jar
15275 /usr/local/activemq/apache-activemq-5.16.5//bin/activemq.jar
pwdx
[root@VM-0-14-centos bin]# pwdx 1595
1595: /home/blog/backend/newbackend
组合使用
# 查看系统中所有java进程所在的位置
pwdx `jps | grep -vi jps | awk '{print $1}'`
# ``(反斜杠)用于取表达式的值
# awk -F分隔符 '{print $1}' //表示用分隔符分割后取第一段。
# awk '{print $1}' 等价于 awk -F空格 '{print $1}'
[root@VM-0-14-centos bin]# pwdx `jps | grep -vi jps | awk '{print $1}'`
1595: /home/blog/backend/newbackend
15275: /usr/local/activemq/apache-activemq-5.16.5/bin