目录
查询java服务的pid
JPS
查询pid上的进程占用的端口
要根据进程 ID(PID)查询该进程绑定的端口,你可以使用 lsof
或 netstat
等工具。下面是几种常见的方法:
方法 1:使用 lsof
查询端口
lsof
是一个非常强大的工具,可以用来列出当前系统中打开的文件和网络连接。使用 lsof
可以查询某个进程(通过 PID)所使用的端口。
命令:
sudo lsof -i -P -n | grep LISTEN | grep <PID>
-i
:显示所有网络连接。-P
:显示端口号而不是端口名。-n
:显示 IP 地址而不是主机名。LISTEN
:过滤出处于监听状态的端口。<PID>
:你要查询的进程 ID。
示例:
假设你有进程 PID 12345
,你可以运行:
sudo lsof -i -P -n | grep LISTEN | grep 12345
这将返回该进程所监听的端口。
输出示例:
java 12345 user 12u IPv6 12345678 0t0 TCP *:8080 (LISTEN)
在这个例子中,PID 为 12345
的进程监听了 8080
端口。
方法 2:使用 netstat
查询端口
netstat
是另一个常用的命令,用来显示网络连接、路由表、接口统计信息等。你可以结合 netstat
和 grep
来查看某个进程的端口。
命令:
sudo netstat -tulnp | grep <PID>
-t
:显示 TCP 连接。-u
:显示 UDP 连接。-l
:只列出监听的端口。-n
:以数字形式显示地址和端口号。-p
:显示进程 ID(PID)和名称。
示例:
假设你有进程 PID 12345
,你可以运行:
sudo netstat -tulnp | grep 12345
输出示例:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12345/java
在这个例子中,PID 为 12345
的进程监听了 8080
端口。
方法 3:使用 ss
命令查询端口
ss
是一个替代 netstat
的工具,速度更快。你可以使用 ss
命令来查询进程的端口信息。
命令:
sudo ss -tulnp | grep <PID>
-t
:显示 TCP 连接。-u
:显示 UDP 连接。-l
:只列出监听的端口。-n
:以数字形式显示地址和端口号。-p
:显示进程 ID(PID)和名称。
示例:
假设你有进程 PID 12345
,你可以运行:
sudo ss -tulnp | grep 12345
输出示例:
LISTEN 0 128 *:8080 *:* users:(("java",12345,9))
在这个例子中,PID 为 12345
的进程监听了 8080
端口。
system相关命令
要查看 systemctl
可启动的服务,可以使用以下命令:
查看所有服务的状态:
systemctl list-units --type=service
这个命令会列出所有当前的服务单元(包括运行中、已停止等状态的服务)。其中,
--type=service
选项只列出服务单元。查看已启用的服务:
systemctl list-unit-files --type=service
这个命令会列出所有服务单元文件,并显示它们是否启用(
enabled
)、禁用(disabled
)或其他状态。查看可以启动但没有启动的服务:
如果你想查看哪些服务未启动,可以结合grep
使用:systemctl list-units --type=service --state=inactive
这个命令会列出所有处于“非活动”状态的服务,也就是那些尚未启动的服务。
查看某个服务的状态:
如果你只想查看某个特定服务的状态,可以用以下命令:systemctl status <service-name>.service
例如:
systemctl status apache2.service
查看服务是否启用开机启动:
使用以下命令查看服务是否配置为开机启动:systemctl is-enabled <service-name>.service
返回值为
enabled
或disabled
。
这些命令帮助你管理和查看系统中可启动的服务。