From de074fe18c3b947059da64c02d5fb17e857b46fd Mon Sep 17 00:00:00 2001 From: Pat Pannuto Date: Wed, 13 Jul 2016 20:18:22 -0400 Subject: [PATCH 1/2] process: save original argv[0] For historical and other reasons, node overwrites `argv[0]` on startup. See - 2c6f79c08, - https://github.com/nodejs/node/issues/7434 - https://github.com/nodejs/node/pull/7449 - https://github.com/nodejs/node/pull/7696 For cases where it may be useful, save the original value of `argv[0]` in `process.argv0` --- doc/api/process.md | 23 ++++++++++++++++++++--- lib/internal/bootstrap_node.js | 5 +++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/doc/api/process.md b/doc/api/process.md index d2f101419d6d48..9f0a953e3a71ce 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -452,9 +452,10 @@ added: v0.1.27 The `process.argv` property returns an array containing the command line arguments passed when the Node.js process was launched. The first element will -be [`process.execPath`]. The second element will be the path to the -JavaScript file being executed. The remaining elements will be any additional -command line arguments. +be [`process.execPath`]. See `process.argv0` if access to the original value of +`argv[0]` is needed. The second element will be the path to the JavaScript +file being executed. The remaining elements will be any additional command line +arguments. For example, assuming the following script for `process-args.js`: @@ -481,6 +482,22 @@ Would generate the output: 4: four ``` +## process.argv0 + + +The `process.argv0` property stores a read-only copy of the original value of +`argv[0]` passed when Node.js starts. + +```js +$ bash -c 'exec -a customArgv0 ./node' +> process.argv[0] +'/Volumes/code/external/node/out/Release/node' +> process.argv0 +'customArgv0' +``` + ## process.chdir(directory)