Linux 서버 내에서 tomcat이 아닌 Java Application으로 만들어 Socket프로그램을 계속 돌릴 수 있게 하기 위해
Java Class 세개와 시작과 중지를 담당하는 두 개의 shell script를 만들게 되었습니다.
작업을 진행하면서 사용하게 된 Linux PID 얻기 관련 명령어를 정리해보겠습니다.
1. 프로세스 PID 확인하기
ps -ef | grep com.socket.server.Server |
현재 패키지(com.socket.server)에 클래스(Server)가 프로세스로 실행이 되고 있는지 확인하는 명령어이다.
cmd Result
[root@dev test]# ps -ef | grep com.socket.server.Server |
2. 프로세스 PID만 얻어오기
ps -ef | grep com.socket.server.Server | awk '{print $2}' |
위 1번 cmd를 실하면 result와 같이 process정보를 각 열로 정리해서 보여준다
우리가 원하는 PID 정보는 2열에 존재하며 awk '{print $2}'를 붙이면 원하는 결과를 가져올 수 있다.
print 숫자에 따른 값 정보 | |||
$1 (권한) |
$2 (Process ID) |
$3 (부모 Process ID) |
$4~~ (etc) |
root |
33298 |
1 |
....(이 외 정보들) |
참고로 awk '{print $2}'에 숫자는
awk '{print $1, $2}', awk '{print $1 $2}' 등 원하는 정보값을 열에 맞게 설정해서 가져올 수 있다.
cmd Result
[root@dev test]# ps -ef | grep com.socket.server.Server | awk '{print $2}' |
3. 얻어 온 PID정보를 파일로 저장하기
ps -ef | grep com.socket.server.Server | awk '{print $2}' > pid |
검색한 정보를 현재 디렉토리에 pid라는 이름으로 저장하는 명령이다.
이번 프로젝트를 하면서 개인적으로
PID값을 저장해서 shell Script에서 for문을 사용할 때 pid라는 파일을 불러와 사용하고 있다.
cmd Result
[root@dev test]# ps -ef | grep com.socket.server.Server | awk '{print $2}' > pid |
'OS > Linux' 카테고리의 다른 글
[ShellScript] Host IP/Name 불러오기, 변수선언 (0) | 2021.01.19 |
---|---|
Linux에서 Java class 실행시키기 (0) | 2018.05.11 |