Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 41937be

Browse filesBrowse files
cjihrigevanlucas
authored andcommitted
src: add process.ppid
Fixes: #14957 PR-URL: #16839 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent f82d3e4 commit 41937be
Copy full SHA for 41937be

File tree

Expand file treeCollapse file tree

3 files changed

+38
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+38
-0
lines changed
Open diff view settings
Collapse file

‎doc/api/process.md‎

Copy file name to clipboardExpand all lines: doc/api/process.md
+13Lines changed: 13 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -1416,6 +1416,19 @@ system platform on which the Node.js process is running. For instance
14161416
console.log(`This platform is ${process.platform}`);
14171417
```
14181418

1419+
## process.ppid
1420+
<!-- YAML
1421+
added: REPLACEME
1422+
-->
1423+
1424+
* {integer}
1425+
1426+
The `process.ppid` property returns the PID of the current parent process.
1427+
1428+
```js
1429+
console.log(`The parent process is pid ${process.ppid}`);
1430+
```
1431+
14191432
## process.release
14201433
<!-- YAML
14211434
added: v3.0.0
Collapse file

‎src/node.cc‎

Copy file name to clipboardExpand all lines: src/node.cc
+9Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3233,6 +3233,12 @@ static void EnvEnumerator(const PropertyCallbackInfo<Array>& info) {
32333233
}
32343234

32353235

3236+
static void GetParentProcessId(Local<Name> property,
3237+
const PropertyCallbackInfo<Value>& info) {
3238+
info.GetReturnValue().Set(Integer::New(info.GetIsolate(), uv_os_getppid()));
3239+
}
3240+
3241+
32363242
static Local<Object> GetFeatures(Environment* env) {
32373243
EscapableHandleScope scope(env->isolate());
32383244

@@ -3565,6 +3571,9 @@ void SetupProcessObject(Environment* env,
35653571
READONLY_PROPERTY(process, "pid", Integer::New(env->isolate(), getpid()));
35663572
READONLY_PROPERTY(process, "features", GetFeatures(env));
35673573

3574+
process->SetAccessor(FIXED_ONE_BYTE_STRING(env->isolate(), "ppid"),
3575+
GetParentProcessId);
3576+
35683577
auto need_immediate_callback_string =
35693578
FIXED_ONE_BYTE_STRING(env->isolate(), "_needImmediateCallback");
35703579
CHECK(process->SetAccessor(env->context(), need_immediate_callback_string,
Collapse file

‎test/parallel/test-process-ppid.js‎

Copy file name to clipboard
+16Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
require('../common');
3+
const assert = require('assert');
4+
const cp = require('child_process');
5+
6+
if (process.argv[2] === 'child') {
7+
// The following console.log() call is part of the test's functionality.
8+
console.log(process.ppid);
9+
} else {
10+
const child = cp.spawnSync(process.execPath, [__filename, 'child']);
11+
12+
assert.strictEqual(child.status, 0);
13+
assert.strictEqual(child.signal, null);
14+
assert.strictEqual(+child.stdout.toString().trim(), process.pid);
15+
assert.strictEqual(child.stderr.toString().trim(), '');
16+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.