pm2 stopped working, error Error: ENOENT: no such file or directory, mkdir 'U:\'
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 43.3k
- Forks
- 2.7k
- PR merge metrics
- No merged PRs in 30d
Description
I use pm2 a lot for deploying my project from my local windows installation on a remote unix machine.
It worked great, until recently. I can not identify what I did that pm2 now suddenly fails.
I already tried un- and reinstall pm2 but that did not help.
Here is the error I get when I want to run pm2:
C:\Privat\dev\am_dev>pm2 deploy
Error: ENOENT: no such file or directory, mkdir 'U:'
at Object.mkdirSync (fs.js:914:3)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:36:19)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:52:43)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:52:43)
at mkdirpNativeSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-native.js:33:14)
at Function.mkdirpSync [as sync] (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\index.js:21:7)
at module.exports.Client.initFileStructure (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:133:25)
at new module.exports (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:38:8)
at new API (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\API.js:108:19)
at Object. (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\binaries\CLI.js:22:11)
Error: ENOENT: no such file or directory, mkdir 'U:'
at Object.mkdirSync (fs.js:914:3)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:36:19)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:52:43)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:52:43)
at mkdirpNativeSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-native.js:33:14)
at Function.mkdirpSync [as sync] (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\index.js:21:7)
at module.exports.Client.initFileStructure (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:141:25)
at new module.exports (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:38:8)
at new API (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\API.js:108:19)
at Object. (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\binaries\CLI.js:22:11)
Error: ENOENT: no such file or directory, open 'U:.pm2\module_conf.json'
at Object.openSync (fs.js:458:3)
at Object.writeFileSync (fs.js:1355:35)
at module.exports.Client.initFileStructure (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:149:10)
at new module.exports (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:38:8)
at new API (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\API.js:108:19)
at Object. (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\binaries\CLI.js:22:11)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
Error: ENOENT: no such file or directory, mkdir 'U:'
at Object.mkdirSync (fs.js:914:3)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:36:19)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:52:43)
at mkdirpManualSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-manual.js:52:43)
at mkdirpNativeSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\lib\mkdirp-native.js:33:14)
at Function.mkdirpSync [as sync] (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\node_modules\mkdirp\index.js:21:7)
at module.exports.Client.initFileStructure (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:157:25)
at new module.exports (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:38:8)
at new API (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\API.js:108:19)
at Object. (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\binaries\CLI.js:22:11)
-------------
/\\\\\\_/\\/\\/\\\\_
_/\/////////\_/\\\/\\\/\///////\_
/\_/\_/\//\_/\//\_/////\_
_/\\\\\\//\\///\/\//\_/\/
/\//////////\_///\//\_/\//_____
/\_/\_////\_____/\//_____
/\_/\_/\_/\/__________
/\_/\_/\_/\\\\\\\_
_////////////////////////
Runtime Edition
PM2 is a Production Process Manager for Node.js applications
with a built-in Load Balancer.
Start and Daemonize any application:
$ pm2 start app.js
Load Balance 4 instances of api.js:
$ pm2 start api.js -i 4
Monitor in production:
$ pm2 monitor
Make pm2 auto-boot at server restart:
$ pm2 startup
To go further checkout:
http://pm2.io/
-------------
Error: ENOENT: no such file or directory, open 'U:.pm2\module_conf.json'
at Object.openSync (fs.js:458:3)
at Object.readFileSync (fs.js:360:35)
at Object.Configuration.getAllSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Configuration.js:299:26)
at Object.Configuration.getSync (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Configuration.js:270:30)
at new API (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\API.js:117:44)
at Object. (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\binaries\CLI.js:22:11)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
internal/fs/utils.js:230
throw err;
^
Error: ENOENT: no such file or directory, open 'U:.pm2\pm2.log'
at Object.openSync (fs.js:458:3)
at module.exports.Client.launchDaemon (C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:228:12)
at C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:104:10
at C:\Users\XXXX\AppData\Roaming\npm\node_modules\pm2\lib\Client.js:320:14
at processTicksAndRejections (internal/process/task_queues.js:79:11)
at runNextTicks (internal/process/task_queues.js:66:3)
at listOnTimeout (internal/timers.js:518:9)
at processTimers (internal/timers.js:492:7) {
errno: -4058,
syscall: 'open',
code: 'ENOENT',
path: 'U:\.pm2\pm2.log'
}
BTW I find it weird that pm2 tries to identify something in folder U: which does not exist on my windows system.
Any help is appreciated.
EDIT: The exception above happens when I start pm2 from the VS Code terminal.
I did some tests with the normal cmd window, and followed another hint to execute
set PM2_HOME=.pm2
like described in this issue
After doing that, I could sucessfully use pm2 in the cmd window.
I restarted VSCode, run the same
set PM2_HOME=.pm2
and I could use pm2 also in VsCode.
Can anyone explain why I suddenly have to do this? Shouldnt the purpose of a global pm2 installation be that I can use it everywhere without setting the path manually every time?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the Windows path handling in lib/Client.js, lib/Configuration.js, and lib/binaries/CLI.js, using the reported VS Code terminal failure and PM2_HOME workaround as the reproduction case. Compare the initialization and configuration paths that produce U:\ and verify the behavior in a normal cmd window and the VS Code terminal. Done means pm2 deploy no longer attempts to create the invalid path without requiring PM2_HOME to be set manually.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js, vscode
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100