여기서는 SSH 터미널을 사용해 Executable jar를 실행하는 것을 설명한다
단순 자바 프로세스 실행
java -jar application.jar
해당 터미널에 표준 출력/에러가 출력됨
Foreground에서 실행되므로 다른 작업 불가
Ctrl + c를 눌러 프로세스를 중단할 수 있다
터미널 세션이 끊기면(터미널 종료도 동일) 프로세스 중단됨
Background로 프로세스 실행
java -jar application.jar &
[1] 3443849
명령어 실행 직후 PID를 출력함
해당 터미널에 표준 출력/에러가 출력됨
백그라운드에서 실행되므로 다른 작업 가능
터미널 세션이 끊기면(터미널 종료도 동일) 프로세스 중단됨
터미널 세션이 끊겨도 프로세스 실행
nohup java -jar application.jar &
명령어 실행 직후 PID를 출력함
현재 디렉터리의 nohup.out 파일에 표준 출력/에러가 저장된다
백그라운드에서 실행되므로 다른 작업 가능
터미널 세션이 끊겨도 프로세스 실행됨
nohup
No hang up
서버와의 연결 세션이 끊어져도 해당 작업을 계속 수행하게 한다
서버와 연결된 터미널에서 세션 로그아웃이 발생할 때, 리눅스는 해당 터미널에서 실행된 프로세스에 대해 HUP signal을 전달해 종료시킨다
nohup은 이 신호를 무시한다
실행 로그는 현재 디렉터리의 nohup.out 파일에 저장된다
표준 출력/에러 버리기
nohup java -jar application.jar 1> /dev/null 2>&1 &
1>
표준 출력(stdout)을 Redirection하는 연산자
그냥 >만 써도 똑같이 동작
/dev/null
출력을 버릴 때 사용하는 디바이스 파일
1> /dev/null
표준 출력을 버린다
2>
표준 에러(stderr)을 리디렉션하는 연산자
2>&1
표준 에러를 표준 출력으로 리디렉션
2번 파일 디스크립터를 1번으로 돌리기
&
명령을 백그라운드에서 실행
'OS > Linux' 카테고리의 다른 글
| Linux > Bash > 파일 암/복호화 (0) | 2025.04.18 |
|---|---|
| Linux > Bash > Here Document (<<EOF) (5) | 2025.04.16 |
| Linux > Crontab > 프로그래밍적 일정 추가 (0) | 2025.02.18 |
| Linux > Bash > 호스트명 내 특정 위치의 값 확인 (0) | 2025.01.07 |
| Linux > Bash > awk (0) | 2024.11.07 |