process
process 모듈은 JSH 애플리케이션에서 사용하도록 설계되었습니다.
env
JSH 런타임 환경 객체입니다.
사용 예시
| |
execPath
호스트 운영체제에서 현재 프로세스 실행 파일의 절대 경로입니다.
사용 예시
| |
pid
현재 프로세스의 ID입니다. 값의 타입은 숫자(Number)이며, 현재 프로세스 ID를 나타냅니다.
사용 예시
| |
ppid
부모 프로세스의 ID입니다. 값의 타입은 숫자(Number)이며, 부모 프로세스 ID를 나타냅니다.
사용 예시
| |
platform
호스트 머신의 운영체제 플랫폼을 식별하는 문자열입니다.
일반적인 값은 windows, linux, darwin(macOS)입니다.
사용 예시
| |
arch
호스트 머신의 운영체제 아키텍처를 식별하는 문자열입니다.
일반적인 값은 amd64, aarch64입니다.
사용 예시
| |
version
JSH 런타임 버전을 식별하는 문자열입니다.
사용 예시
| |
versions
런타임의 상세 버전 정보를 제공하는 객체입니다.
versions.jsh: JSH 런타임 버전 문자열versions.go: Go 런타임 버전 문자열
사용 예시
| |
title
현재 프로그램을 식별하는 문자열입니다.
사용 예시
| |
stdin, stdout, stderr
stdin, stdout, stderr 스트림입니다.
사용 예시
| |
addShutdownHook()
현재 프로세스가 종료될 때 호출할 콜백 함수를 추가합니다.
사용 형식
addShutdownHook(()=>{})사용 예시
| |
exit()
현재 프로세스를 종료합니다. code를 생략하면 기본값은 0입니다.
사용 형식
exit([code])사용 예시
| |
which()
PATH에서 JavaScript 명령을 찾아 해석된 파일 경로를 반환합니다.
명령에 .js 확장자가 없으면 자동으로 추가됩니다.
사용 형식
which(command)사용 예시
| |
expand()
문자열에서 $HOME, ${HOME} 같은 환경 변수를 확장합니다.
사용 형식
expand(value)사용 예시
| |
exec()
JavaScript 명령 파일을 실행하고 종료 코드를 반환합니다.
사용 형식
exec(command, ...args)사용 예시
| |
execString()
문자열로 전달한 JavaScript 소스 코드를 실행하고 종료 코드를 반환합니다.
사용 형식
execString(source, ...args)사용 예시
| |
dispatchEvent()
JSH 이벤트 루프에서 이벤트 이미터 객체로 이벤트를 디스패치합니다.
이 함수는 이벤트 스케줄링에 성공하면 true를, 이벤트 루프가 이미 종료되었으면 false를 반환합니다.
사용 형식
dispatchEvent(target, eventName, ...args)사용 예시
| |
now()
현재 시각을 JavaScript 날짜-시간 객체로 반환합니다.
사용 예시
| |
chdir()
현재 작업 디렉터리를 변경합니다.
path가 빈 문자열이면 JSH는 이를 $HOME으로 해석합니다.
사용 형식
chdir(path)사용 예시
| |
cwd()
현재 작업 디렉터리 경로를 반환합니다.
사용 예시
| |
nextTick()
다음 이벤트 루프 턴에서 실행할 콜백을 예약합니다.
첫 번째 인자가 함수가 아니면 아무 동작도 하지 않고 undefined를 반환합니다.
사용 형식
nextTick(callback, ...args)사용 예시
| |
memoryUsage()
메모리 사용량 정보를 객체로 반환합니다.
현재 구현은 모든 필드를 숫자 0으로 반환하는 플레이스홀더입니다.
반환 필드
rssheapTotalheapUsedexternalarrayBuffers
사용 예시
| |
cpuUsage()
CPU 사용량 정보를 반환합니다.
현재 구현은 두 필드 모두 숫자 0을 반환하는 플레이스홀더입니다.
반환 필드
usersystem
사용 예시
| |
uptime()
프로세스 업타임(초)을 숫자로 반환합니다.
사용 예시
| |
hrtime()
고해상도 시간 튜플 [seconds, nanoseconds]을 반환합니다.
이전 튜플을 전달하면 해당 시점부터의 경과 시간을 반환합니다.
사용 형식
hrtime([previous])사용 예시
| |
Signal Events
process는 EventEmitter처럼 시그널 이벤트를 받을 수 있습니다.
현재 문서 시점 기준으로 다음 시그널 이름을 지원합니다.
SIGHUPSIGINTSIGQUITSIGABRTSIGKILLSIGUSR1SIGSEGVSIGUSR2SIGPIPESIGALRMSIGTERM
시그널 이벤트 리스너는 대소문자를 구분하지 않습니다.
이벤트 이름은 SIG 접두어를 포함한 형태만 지원합니다.
예를 들어 아래 이름들은 동일하게 동작합니다.
SIGTERMsigterm
term 같은 bare alias는 시그널 이벤트 이름으로 취급하지 않습니다.
이 값은 일반 EventEmitter 이벤트 이름으로 유지됩니다.
리스너를 등록하면 JSH가 해당 OS 시그널을 이벤트로 전달합니다. 리스너가 없으면 운영체제의 기본 시그널 동작을 따릅니다.
사용 예시
| |
지원하는 리스너 등록 예
process.on('sigterm', handler);
process.once('SIGTERM', handler);
process.addListener('sigquit', handler);kill()
지정한 프로세스 ID로 실제 OS 시그널을 전송합니다.
pid는 양의 정수여야 합니다.signal을 생략하면 기본값은SIGTERM입니다.- 성공하면
true를 반환합니다. - 실패하면
Error객체를 반환합니다. signal에는 문자열 이름 또는 숫자 시그널 번호를 사용할 수 있습니다.
문자열 이름은 대소문자를 구분하지 않으며 SIG 접두어를 생략할 수 있습니다.
이 별칭 지원은 process.kill()에 적용됩니다.
예:
SIGTERMtermsigint
숫자 시그널은 현재 다음 값을 지원합니다.
| 숫자 | 리터럴 |
|---|---|
0 | 없음 |
1 | SIGHUP |
2 | SIGINT |
3 | SIGQUIT |
6 | SIGABRT |
9 | SIGKILL |
10 | SIGUSR1 |
11 | SIGSEGV |
12 | SIGUSR2 |
13 | SIGPIPE |
14 | SIGALRM |
15 | SIGTERM |
signal 값 0은 실제 시그널을 보내지 않고, 대상 프로세스 존재 여부와 권한을 검사할 때 사용할 수 있습니다.
Windows에서 process.kill(pid, 'SIGINT')는 Unix의 kill(2)처럼 실제 시그널을 직접 보내는 동작이 아닙니다.
대신 대상 프로세스 그룹이 SIGINT에 가까운 인터럽트로 관찰할 수 있도록 interrupt 성격의 console control event 전달을 시도합니다.
이 동작은 Windows에서 Node.js interrupt semantic에 가장 가깝게 맞춘 것이지만 best-effort입니다.
즉, 대상이 콘솔에 연결된 프로세스 그룹이어야 하며 Windows가 control event를 라우팅할 수 없는 경우 실패할 수 있습니다.
Windows에서 SIGTERM, SIGQUIT, SIGKILL은 Unix처럼 서로 다른 실제 시그널이라기보다 종료 요청으로 처리됩니다.
사용 형식
kill(pid[, signal])사용 예시
| |
Windows interrupt 예시
const process = require('process');
console.println(process.kill(12345, 'SIGINT'));Windows가 control event를 라우팅할 수 없으면 process.kill()은 Error 객체를 반환합니다.
프로세스 존재 여부 확인 예시
| |
dumpStack()
디버깅을 위해 지정한 깊이만큼 현재 JavaScript 호출 스택을 출력합니다.
사용 형식
dumpStack(depth)사용 예시
| |