모듈 프로세스
현재 프로세스의 자원을 관리하는 데 사용되는 프로세스 처리 모듈
참고 방법:
1var process = require('process');
프로세스 이벤트
프로세스 모듈 개체는 다음과 같습니다.EventEmitter인스턴스는 이벤트 리스너를 등록하여 프로세스 수준 이벤트에 응답할 수 있습니다.
beforeExit 이벤트
fibjs 작업이 비어 있고 추가 작업이 추가되지 않으면 이벤트가 beforeExit
트리거됩니다.
1process.on('beforeExit', exitCode => {});
일반적으로 작업 대기열에 추가 작업이 추가되지 않으면 fibjs 프로세스가 종료됩니다. 그러나 beforeExit
파이버 시작과 같이 이벤트 바인딩 리스너의 콜백 함수에서 새 작업이 시작되면 fibjs 프로세스가 계속 실행됩니다.
process.exitCodebeforeExit
이벤트 리스너의 콜백 함수 에 유일한 매개변수 값으로 전달됩니다 . 직접 호출하는 등 명시적인 사유로 프로세스가 종료되려고 하는 경우process.exit또는 포착되지 않은 예외를 발생시키면 beforeExit
이벤트가 트리거되지 않습니다.
이탈 이벤트
fibjs가 종료되면 이벤트가 exit
트리거되고, exit
이벤트에 바인딩된 모든 리스너가 실행을 완료하면 프로세스가 종료됩니다.
1process.on('exit', exitCode => {});
exit
이벤트 리스너의 콜백 함수에는 입력 매개변수가 하나만 있으며, 이 매개변수의 값은 다음과 같습니다.process.exitCode속성 값 또는 호출process.exit메소드에 전달된 값입니다 exitCode
.
신호 이벤트
fibjs 프로세스가 신호를 수신하면 신호 이벤트가 트리거됩니다. 현재 지원되는 신호는 SIGINT 및 SIGTERM입니다. 각 이벤트 이름은 시그널 이름의 대문자로 표현됩니다(예를 들어 'SIGINT' 이벤트는 SIGINT 시그널에 해당합니다).
신호 이벤트는 다른 프로세스 이벤트와 다릅니다. 신호 이벤트는 선점됩니다. 신호가 발생하면 전류에 관계없이ioJavaScript 작업이든 관계없이 작업은 가능한 한 빨리 해당 이벤트를 트리거합니다. 예를 들어, 다음 코드를 사용하여 현재 애플리케이션을 중단하고 실행 상태를 출력할 수 있습니다.
1
2
3
4
5
6var coroutine = require('coroutine');
process.on('SIGINT', () => {
coroutine.fibers.forEach(f => console.error("Fiber %d:\n%s", f.id, f.stack));
process.exit();
});
신호 이름과 의미는 다음과 같습니다.
- SIGINT: 터미널에서 실행될 때 모든 플랫폼에서 지원될 수 있으며 일반적으로 CTRL+C로 트리거될 수 있습니다.
- SIGTERM: 이 신호는 프로세스가 종료될 때 트리거됩니다. Windows에서는 지원되지 않습니다.
정적 함수
umask
현재 umask를 변경하세요. Windows에서는 이 방법을 지원하지 않습니다.
1static Integer process.umask(Integer mask);
호출 매개변수:
- mask: 정수, 새 마스크 지정
결과 반환:
- Integer, 이전 마스크로 돌아가기
현재 umask를 변경하세요. Windows에서는 이 방법을 지원하지 않습니다.
1static Integer process.umask(String mask);
호출 매개변수:
- mask: 문자열, 새 마스크를 지정합니다. 문자열 유형은 8진수입니다(예: "0664").
결과 반환:
- Integer, 이전 마스크로 돌아가기
현재 umask를 반환합니다. Windows에서는 이 메서드를 지원하지 않습니다.
1static Integer process.umask();
결과 반환:
- Integer, 현재 마스크 값을 반환합니다.
hrtime
시스템의 고정밀 시간을 반환합니다. 이 시간은 현재 시간과 관련이 없으며 고정밀 타이밍에만 사용됩니다.
1static Array process.hrtime(Array diff = []);
호출 매개변수:
- diff: 배열, 비교에 사용된 초기 시간
결과 반환:
- Array, [초, 나노초] 형식으로 타이밍 시간을 반환합니다.
exit
현재 프로세스를 종료하고 프로세스 결과로 exitCode를 반환합니다.
1static process.exit();
현재 프로세스를 종료하고 결과를 반환합니다.
1static process.exit(Integer code);
호출 매개변수:
- code: 정수, 처리 결과를 반환합니다.
cwd
운영 체제의 현재 작업 경로를 반환합니다.
1static String process.cwd();
결과 반환:
- String, 현재 시스템 경로를 반환합니다.
dlopen
C++ 애드온을 동적으로 로드
1
2
3static process.dlopen(Object module,
String filename,
Integer flags = 1);
호출 매개변수:
- module: 객체, 로드할 모듈을 지정합니다.
- filename: 문자열, 로드할 모듈 파일 이름을 지정합니다.
- flags: 정수, 모듈을 로드하는 방법을 지정합니다. 기본값은 1입니다.
chdir
운영 체제의 현재 작업 경로 수정
1static process.chdir(String directory);
호출 매개변수:
- directory: 문자열, 설정의 새 경로를 지정합니다.
uptime
실행 중인 환경의 실행 시간(초)을 쿼리합니다.
1static Number process.uptime();
결과 반환:
- Number, 시간을 나타내는 숫자 값을 반환합니다.
cpuUsage
사용자 및 시스템 코드에서 현재 프로세스에 소요된 시간을 쿼리합니다. 값은 마이크로초 값(백만분의 1초)입니다.
1static Object process.cpuUsage(Object previousValue = {});
호출 매개변수:
- previousValue: 객체, 마지막 쿼리 시간을 지정합니다.
결과 반환:
- Object, 시간이 포함된 보고서를 반환합니다.
메모리 보고서는 다음과 유사한 결과를 생성합니다.
1
2
3
4{
"user": 132379,
"system": 50507
}
안에:
- 사용자는 프로세스가 사용자 코드에서 소비한 시간을 반환합니다.
- 시스템은 프로세스가 시스템 코드에서 소비한 시간을 반환합니다.
memoryUsage
현재 프로세스의 메모리 사용량 보고서 쿼리
1static Object process.memoryUsage();
결과 반환:
- Object, 메모리가 포함된 보고서를 반환합니다.
메모리 보고서는 다음과 유사한 결과를 생성합니다.
1
2
3
4
5{
"rss": 8622080,
"heapTotal": 4083456,
"heapUsed": 1621800
}
안에:
- RSS는 프로세스가 차지하는 현재 물리적 메모리 크기를 반환합니다.
- heapTotal은 v8 엔진 힙 메모리 크기를 반환합니다.
- heapUsed는 v8 엔진에서 사용 중인 힙 메모리 크기를 반환합니다.
nextTick
광섬유를 시작하다
1
2static process.nextTick(Function func,
...args);
호출 매개변수:
- func: 함수, 광섬유에 의해 실행되는 함수를 지정합니다.
- args: ..., Fiber 내의 함수에 전달될 가변 인수 시퀀스
binding
지정된 이름을 가진 내부 모듈을 가져옵니다.
1static Value process.binding(String name);
호출 매개변수:
- name: 문자열, 쿼리할 내부 모듈 이름을 지정합니다.
결과 반환:
- Value, 지정된 내부 모듈을 반환합니다.
getgid
현재 프로세스의 그룹 ID 쿼리
1static Integer process.getgid();
결과 반환:
- Integer, 현재 프로세스의 그룹 ID를 반환합니다.
getuid
현재 프로세스의 사용자 ID를 조회합니다.
1static Integer process.getuid();
결과 반환:
- Integer, 현재 프로세스의 사용자 ID를 반환합니다.
setgid
현재 프로세스의 그룹 ID를 설정합니다.
1static process.setgid(Integer id);
호출 매개변수:
- id: 정수, 설정할 그룹 ID를 지정합니다.
setuid
현재 프로세스의 사용자 ID를 설정합니다.
1static process.setuid(Integer id);
호출 매개변수:
- id: 정수, 설정할 사용자 ID를 지정합니다.
emitWarning
사용자 정의 또는 애플리케이션별 프로세스 경고를 발행합니다. 이러한 이벤트는 'warning' 이벤트에 핸들러를 추가하여 들을 수 있습니다.
1
2static process.emitWarning(Value warning,
Object options);
호출 매개변수:
- warning: 값, 발행될 경고를 지정합니다.
options: 객체, 경고를 지정하는 옵션
옵션에는 다음이 포함됩니다.
1
2
3
4
5{
"type": "Warning", // specifies the name of the type of warning issued. Default value: 'Warning'
"code": "", // specify the unique identifier of the warning instance issued
"detail": "" // specify additional text for warnings
}
사용 방법:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17const {
emitWarning
} = require('process');
// Emit a warning with a code and additional detail.
emitWarning('Something happened!', {
code: 'MY_WARNING',
detail: 'This is some additional information',
});
process.on('warning', (warning) => {
console.warn(warning.name); // 'Warning'
console.warn(warning.message); // 'Something happened!'
console.warn(warning.code); // 'MY_WARNING'
console.warn(warning.stack); // Stack trace
console.warn(warning.detail); // 'This is some additional information'
});
사용자 정의 또는 애플리케이션별 프로세스 경고를 발행합니다. 이러한 이벤트는 'warning' 이벤트에 핸들러를 추가하여 들을 수 있습니다.
1
2
3static process.emitWarning(Value warning,
String type = "Warning",
String code = "");
호출 매개변수:
- warning: 값, 발행될 경고를 지정합니다.
- type: 문자열, 발행될 경고 유형의 이름을 지정합니다. 기본값: '경고'
- code: 문자열, 발행된 경고 인스턴스의 고유 식별자를 지정합니다.
disconnect
상위 프로세스에 대한 ipc 파이프를 닫습니다.
1static process.disconnect();
send
상위 프로세스에 메시지 보내기
1static process.send(Value msg);
호출 매개변수:
- msg: 값, 보낼 메시지를 지정합니다.
정적 속성
argv
배열, 현재 프로세스의 명령줄 매개변수를 반환합니다.
1static readonly Array process.argv;
execArgv
Array는 현재 프로세스의 특수 명령줄 매개변수를 반환합니다. 이 매개변수는 fibjs에서 실행 환경을 설정하는 데 사용됩니다.
1static readonly Array process.execArgv;
version
문자열, fibjs 버전 문자열을 반환합니다.
1static readonly String process.version;
versions
객체, fibjs 및 구성 요소의 버전 정보를 반환합니다.
1static readonly Object process.versions;
execPath
문자열, 현재 실행 중인 실행 파일의 전체 경로를 쿼리합니다.
1static readonly String process.execPath;
env
개체, 현재 프로세스의 환경 변수를 쿼리합니다.
1static readonly Object process.env;
arch
문자열, 현재 CPU 환경 쿼리, 가능한 결과는 'amd64', 'arm', 'arm64', 'ia32'입니다.
1static readonly String process.arch;
platform
문자열, 현재 플랫폼 이름을 쿼리합니다. 가능한 결과는 'darwin', 'freebsd', 'linux' 또는 'win32'입니다.
1static readonly String process.platform;
pid
정수, 현재 객체가 가리키는 프로세스의 ID를 읽습니다.
1static readonly Integer process.pid;
ppid
정수, 현재 객체가 가리키는 상위 프로세스의 ID를 읽습니다.
1static readonly Integer process.ppid;
stdin
Stream, 현재 프로세스의 표준 입력 개체를 쿼리합니다.tty중웨이TTYInputStream, 그렇지 않으면Stream
1static readonly Stream process.stdin;
stdout
Stream, 현재 프로세스의 표준 출력 객체를 쿼리합니다.tty중웨이TTYOutputStream, 그렇지 않으면Stream
1static readonly Stream process.stdout;
stderr
Stream, 현재 프로세스 표준 오류 출력 개체를 쿼리합니다.tty중웨이TTYOutputStream, 그렇지 않으면Stream
1static readonly Stream process.stderr;
exitCode
현재 프로세스의 정수, 쿼리 및 종료 코드 설정
1static Integer process.exitCode;
connected
Boolean, 상위 프로세스와의 파이프가 정상적으로 연결되었는지 쿼리
1static readonly Boolean process.connected;