모듈 프로세스
현재 프로세스의 자원을 관리하는 데 사용되는 프로세스 처리 모듈
참고 방법:
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;
