자바 프로세스 목록
모든 Java 프로세스를 bash에 나열하려면 어떻게 해야 합니까?사령선이 필요해요나는 명령이 있다는 것을 압니다.ps어떤 매개변수를 사용해야 할지 모르겠습니다.
시도:
ps aux | grep java
그리고 당신이 어떻게 지내는지 보세요.
최신 Java에는 Java Virtual Machine Process Status Tool "jps"가 함께 제공됩니다.
http://download.oracle.com/javase/1.5.0/docs/tooldocs/share/jps.html
예를들면,
[nsushkin@fulton support]$ jps -m
2120 Main --userdir /home/nsushkin/.netbeans/7.0 --branding nb
26546 charles.jar
17600 Jps -m
jps -lV
가장 유용합니다.pid 및 정규화된 주 클래스 이름만 인쇄합니다.
2472 com.intellij.idea.Main
11111 sun.tools.jps.Jps
9030 play.server.Server
2752 org.jetbrains.idea.maven.server.RemoteMavenServer
Java 7부터는 명령어를 사용하여 오류가 발생하기 쉬운 가장 간단한 방법으로jcmd 모든 OS에서 동일한 방식으로 작동하도록 JDK의 일부입니다.
예:
> jcmd
5485 sun.tools.jcmd.JCmd
2125 MyProgram
jcmd실행 중인 JVM(Java Virtual Machine)에 진단 명령 요청을 보낼 수 있습니다.
사용 방법에 대한 자세한 정보.
단일 명령 pgrep도 사용할 수 있습니다(파이프 및 여러 명령을 사용할 필요 없음).
pgrep -fl java
출력 형식을 개선하려면 다음 명령을 확인하십시오.
ps -fC java
그러면 Linux 환경에서 실행 중인 모든 Java 프로세스가 반환됩니다.그런 다음 프로세스 ID를 사용하여 프로세스를 종료할 수 있습니다.
ps -e|grep java
ps aux | grep java
또는
$ ps -fea|grep -i java
pgrep -l java
ps -ef | grep java
Java 프로세스를 간단히 나열하려면 다음을 사용합니다.
ps -A | grep java
ps axuwww | grep java | grep -v grep
위의 유언
- 긴 줄이 있는 모든 프로세스 표시(arg: www)
- 필터(grep)는 단어 java를 포함하는 행만 포함합니다.
- "grep java" 행을 필터링합니다 :)
(btw, 이 예는 효과적인 예는 아니지만 기억하기가 쉽습니다) ;)
위의 명령을 다른 명령으로 연결할 수 있습니다. 예:
ps axuwww | grep java | grep -v grep | sed '.....' | while read something
do
something_another $something
done
기타...
특정 Java 클래스가 실행되고 있는지 확인하려면 다음 명령줄을 사용합니다.
ps ww -f -C java | grep "fully.qualified.name.of.class"
OS 측면에서 볼 때 프로세스의 명령 이름은 "java"입니다."www" 옵션은 열의 최대 문자 수를 넓히므로 관련 클래스의 FQN을 grep할 수 있습니다.
redhat 리눅스에서 openjdk-1.8을 사용하여 시도했을 때 jps & jcmd는 아무런 결과를 보여주지 않았습니다.하지만 제 경우에는 작동하지 않는 현재 사용자 아래의 프로세스만 표시됩니다.ps|grep를 사용하는 것이 제가 하게 된 일이지만 일부 Java 앱의 클래스 경로가 매우 길어 결과를 읽을 수 없기 때문에 제거하는 데 사용했습니다.이것은 여전히 약간 거칠지만 PID, User, java-class/jar, args를 제외한 모든 것을 제거합니다.
ps -o pid,user,cmd -C java | sed -e 's/\([0-9]\+ *[^ ]*\) *[^ ]* *\([^$]*\)/\1 \2/' -e 's/-c[^ ]* [^ ]* \|-[^ ]* //g'
결과는 다음과 같습니다.
PID USER CMD
11251 userb org.apache.zookeeper.server.quorum.QuorumPeerMain ../config/zookeeper.properties
19574 userb com.intellij.idea.Main
28807 root org.apache.nifi.bootstrap.RunNiFi run
28829 root org.apache.nifi.NiFi
창에서 모든 프로세스를 나열하는 방법은 다음과 같습니다.
WMIC path win32_process where "Caption='java.exe'" get ProcessId,Commandline
하지만 좀 더 읽기 쉽게 하기 위해서는 약간의 해석이 필요할 것입니다.
이렇게 하는 데는 여러 가지 방법이 있습니다.사용할 수 있습니다.java.lang.ProcessBuilder해야 합니다.pgrep -fl java | awk {'print $1'}Linux에서 실행 "Linux"를 수 ./proc디렉토리입니다.
알아요, 이것은 끔찍하고, 휴대할 수 없고, 심지어 제대로 구현되지 않은 것처럼 보입니다, 저는 동의합니다.그러나 Java는 실제로 VM에서 실행되기 때문에 JDK에서 15년 이상 일한 후에는 알 수 없는 황당한 이유로 인해 JVM 공간 밖에서 사물을 볼 수 없는 이유를 생각하면 정말 터무니없는 일입니다.당신은 다른 모든 것을 할 수 있습니다, 심지어.fork그리고.join자식 프로세스(세상이 스레드나 pthread에 대해 몰랐을 때 멀티태스킹을 하는 끔찍한 방법이었다, 젠장! 자바에 무슨 일이 일어나고 있는 거지?!:).
이것은 제가 알고 있는 엄청난 토론을 제공할 것입니다. 하지만 어쨌든 제 프로젝트에서 이미 사용한 매우 좋은 API가 있고 충분히 안정적입니다(OSS이므로 API를 진정으로 신뢰하기 전에 사용하는 모든 버전을 강조해야 합니다). https://github.com/jezhumble/javasysmon
JavaDoc: http://jezhumble.github.io/javasysmon/, 클래스 검색com.jezhumble.javasysmon.OsProcess그녀가 그 묘기를 부릴 것입니다.도움이 되었으면 좋겠네요, 행운을 빕니다.
ps -eaf | grep [j]ava
에는 이 명령어를 포함하지 않는 것이 []을 터득합니까?
나는 이것을 사용합니다(데비안 8에 적합): alias psj='ps --no-headers -ww -C java -o pid,user,start_time,command'
다음 명령은 Java 프로세스만 반환합니다.ID. 이러한 명령은 반환 값(java PID)으로 다른 프로세스를 공급할 때 특히 유용합니다.
sudo netstat -nlpt | awk '/wk/ {print $7}' | tr '/wk' '
sudo netstat -nlpt | awk '/wk/ {print $7}' | sed 's/\/wk//g'
그러나 최신 파이프를 제거하면 Java 프로세스임을 알 수 있습니다.
sudo netstat -nlpt | awk '/wk/ {print $7}'
sudo netstat -nlpt | awk '/wk/ {print $7}'
Linux 시스템에서 실행 중인 Java 목록을 알고자 합니다. ps -e | grep java
언급URL : https://stackoverflow.com/questions/6283167/list-of-java-processes
'programing' 카테고리의 다른 글
| C#은 왜 수학을 실행합니까?Sqrt()가 VB보다 느립니다.NET? (0) | 2023.05.15 |
|---|---|
| mongoose 2개 필드를 사용한 사용자 지정 유효성 검사 (0) | 2023.05.15 |
| psql: FATAL: "dev" 사용자에 대한 피어 인증 실패 (0) | 2023.05.15 |
| Xcode 스토리보드 경고: 현재 구성에서 항목을 참조하는 제약 조건이 해제되었습니다.현재 구성에서 이 제약 조건 해제 (0) | 2023.05.15 |
| 연속 번호 목록을 생성하려면 어떻게 해야 합니까? (0) | 2023.05.15 |