java - 在 Linux 中不使用 sudo 查找进程名称

标签 java linux process sudo pid

以下是我熟悉的命令,它们可以执行您认为我想要的操作: 为了这个问题; "pn"= "进程名称"

pgrep pn
sudo /sbin/service pn status
ps -fC pn

我遇到的问题是 Java。 pgrep Java 会给我所有 java 进程的 PID。但是,如果我知道 Java 应用程序的确切名称,我们称它为咖啡,pgrep Coffee 什么也没有给我。但是,sudo/sbin/service Coffee status 会给我 Coffee 的确切 PID。问题是我不想也不能在我正在编写的脚本中使用 sudo。那么,即使是 Java 应用程序,我如何找到 Coffee 的 PID?

最佳答案

我也遇到了同样的问题。可能有更好的答案,但我所做的是这个

ps -efw | grep pn

然后我可以使用 awk 只获取我想要的列,这样它就只是 pid。

ps -efw | grep pn | awk '{print $2}'

编辑:在 ps 中使用“w”选项以获得宽输出。有时,名称中没有“w”就不会显示。

w Wide output. Use this option twice for unlimited width.

关于java - 在 Linux 中不使用 sudo 查找进程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33308517/

相关文章:

Java8 : How to get the internal Type of java. util.Optional 类?

linux - 带有 "scp"的 Elixir——权限被拒绝并且连接丢失

c++ - 如何从应用程序中查找 windows 和 linux 的应用程序版本

linux - 如何找到/bin/bash进程执行的命令? (Linux)

c# - 在工作进程 C# 上验证 Youtube API

java - 使用 Jackson 读取单个 JSON 事件

c# - 为什么在使用 java 和 protobuf-net 的 Protocol Buffer 进行序列化时 byte[] 不同?

java - Java Swing 同时进行 MouseEntered 和 KeyPressed

c - 正确发送 RST 数据包到 TCP 客户端和服务器作为网关

java - 尝试使用 Runtime.getRuntime().exec() 执行 Java jar