Try:
pm2 start 'script.js -d 1'
and it crashes, showing a module not found error:
Error: Cannot find module '......./device-simulation.js -d 1'
Not sure we can do that easily for now, as require is used for launching the script.
The alternative would be to use environment variables instead.
CLI Code :
https://github.com/Unitech/pm2/blob/master/bin/pm2#L235
Fork child ProcessContainer.js :
http://nodejs.org/api/cluster.html#cluster_cluster_fork_env
ProcessContainer script require :
https://github.com/Unitech/pm2/blob/master/lib/ProcessContainer.js#L56
I think it would be really easy to parse extra params within single quote chars and enrich process.argv with them.
On 19 jun. 2013, at 05:49, Alexandre Strzelewicz [email protected] wrote:
Not sure we can do that easily for now, as require is used for launching the script.
The alternative would be to use environment variables instead.CLI Code :
https://github.com/Unitech/pm2/blob/master/bin/pm2#L235Fork child ProcessContainer.js :
http://nodejs.org/api/cluster.html#cluster_cluster_fork_envProcessContainer script require :
https://github.com/Unitech/pm2/blob/master/lib/ProcessContainer.js#L56—
Reply to this email directly or view it on GitHub.
That's a solution, pull me a request :+1: ! :)
Not behind comp today nor have time soon, but will do at some point...
On 19 jun. 2013, at 12:54, Alexandre Strzelewicz [email protected] wrote:
That's a solution, pull me a request ! :)
—
Reply to this email directly or view it on GitHub.
A standard unix way of doing such things would be something like that:
pm2 start script.js -- -d 1
when anything after "--" parameter is passed to the script
(see http://unix.stackexchange.com/questions/11376/what-does-double-dash-mean)
PS: I suppose, commander can already do that, just add something like process.argv = commander.argv after a require.
Nice. Learned a thing on my day off ;)
On 19 jun. 2013, at 18:43, Alex Kocharin [email protected] wrote:
A standard unix way of doing such things would be something like that:
pm2 start script.js -- -d 1when anything after "--" parameter is passed to the script
(see http://unix.stackexchange.com/questions/11376/what-does-double-dash-mean)
—
Reply to this email directly or view it on GitHub.
Fixed and thanks for the tip Alex ;)
NOTICE that the arguments you supply will persist until you delete and restart the app:
pm2 start app.js -- aa bb cc
pm2 restart app.js -- 11 22 33
Above will not work, you should do the following:
pm2 delete app.js
pm2 start app.js -- 11 22 33
However I think it's weird, what if I want to change an argument...
@xieranmaya Thank you!
Now with PM2 > 1.1.x
this:
$ pm2 start app.js -- aa bb cc
$ pm2 restart app.js -- 11 22 33
works, but doing
$ pm2 restart app.js
Will still keep the latest arguments (11, 22, 33)
@Unitech Great improve!
Is there a way to run two processes with different arguments but the same script with this configuration?
It also seems that i cant put more than 8 arguments in there:
pm2 start log --name "Logger" --node-args='--harmony_destructuring' -- arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8
[PM2] Starting log in fork_mode (1 instance)
[PM2] Done.
pm2 start log --name "Logger" --node-args='--harmony_destructuring' -- arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9
[PM2][ERROR] script not found : /somedir/bin/arg9
Now with PM2 > 1.1.x
this:
$ pm2 start app.js -- aa bb cc
$ pm2 restart app.js -- 11 22 33
works, but doing$ pm2 restart app.js
Will still keep the latest arguments (11, 22, 33)
Hello. I dont need to keep latest arguments. How can i "nullify" them?
What is the way to run
pm2 start --env production --node-args "DB_HOST=some.host.xyz DB_NAME=mybase DB_USER=heman DB_PASSWORD=Morning@r00t90"
Most helpful comment
A standard unix way of doing such things would be something like that:
pm2 start script.js -- -d 1
when anything after "--" parameter is passed to the script
(see http://unix.stackexchange.com/questions/11376/what-does-double-dash-mean)
PS: I suppose,
commandercan already do that, just add something likeprocess.argv = commander.argvafter a require.