モジュールプロセス
プロセス処理モジュール。現在のプロセスのリソースを管理するために使用されます。
参考方法:
1var process = require('process');
プロセスイベント
プロセスモジュールオブジェクトはEventEmitterインスタンスは、イベント リスナーを登録することでプロセス レベルのイベントに応答できます。
beforeExitイベント
fibjs タスクが空で、追加の作業が追加されない場合、イベントがbeforeExit
トリガーされます。
1process.on('beforeExit', exitCode => {});
通常、タスク キューに追加の作業が追加されない場合、fibjs プロセスは終了します。ただし、beforeExit
ファイバーの開始など、イベント バインド リスナーのコールバック関数で新しいタスクが開始された場合、fibjs プロセスは実行を継続します。
process.exitCode唯一のパラメータ値としてbeforeExit
イベント リスナーのコールバック関数に渡されます。直接呼び出しなどの明示的な理由でプロセスが終了しようとしている場合process.exitまたは、キャッチされない例外をスローすると、beforeExit
イベントはトリガーされません。
終了イベント
fibjs が終了すると、イベントがexit
トリガーされ、exit
イベントにバインドされたすべてのリスナーが実行を完了すると、プロセスが終了します。
1process.on('exit', exitCode => {});
exit
イベント リスナーのコールバック関数には入力パラメーターが 1 つだけあります。このパラメーターの値は次のとおりです。process.exitCode属性値、または呼び出しprocess.exitメソッドに渡される値exitCode
。
信号イベント
fibjs プロセスがシグナルを受信すると、シグナル イベントがトリガーされます。現在サポートされているシグナルは SIGINT と SIGTERM です。各イベント名はシグナル名の大文字で表現されます(たとえば、イベント「SIGINT」はシグナル SIGINT に対応します)。
シグナル イベントは他のプロセス イベントとは異なります。シグナル イベントはプリエンプトされます。シグナルが発生すると、現在のプロセスに関係なく、io操作は、JavaScript 操作であっても、できるだけ早く対応するイベントをトリガーします。たとえば、次のコードを使用して、現在のアプリケーションを中断し、実行ステータスを出力できます。
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
ユーザーおよびシステム コードで現在のプロセスに費やされた時間をクエリします。値はマイクロ秒値 (100 万分の 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 エンジンのヒープ メモリ サイズを返します
- heap Used は、v8 エンジンによって使用されているヒープ メモリ サイズを返します。
nextTick
ファイバーを始める
1
2static process.nextTick(Function func,
...args);
呼び出しパラメータ:
- func: 関数、ファイバーによって実行される関数を指定します
- args: ...、ファイバー内の関数に渡される引数の可変長シーケンス
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
カスタムまたはアプリケーション固有のプロセス警告を発行します。これらのイベントは、「警告」イベントにハンドラーを追加することでリッスンできます。
1
2static process.emitWarning(Value warning,
Object options);
呼び出しパラメータ:
- warning: 値。発行する警告を指定します。
オプション: オブジェクト、警告を指定するオプション
オプションには次のものが含まれます。
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'
});
カスタムまたはアプリケーション固有のプロセス警告を発行します。これらのイベントは、「警告」イベントにハンドラーを追加することでリッスンできます。
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
配列は、現在のプロセスの特別なコマンド ライン パラメータを返します。これらのパラメータは、実行環境を設定するために 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
ブール値、親プロセスとのパイプが正常に接続されているかどうかを問い合わせます
1static readonly Boolean process.connected;