Introduction
I am running a nodejs server in the production environment using pm2. The javascript file a python script upon a prompt using the conda run
method. This command errors out with the following message: /bin/sh: 1: conda: not found
. However, running the same js file using npx nodemon
or simply node
works well without any errors.
Detailed Description
The javascript file is as follows
...
command = "conda run -n p2vois python path_to_python_script_file.py " variable_with_arguments_for_the_python_script;
...
var pyProcess = cmd.get(command,
(err, datax, stderr)=> {
console.log("here datax: %s", datax)
if(err){
console.log("python script cmd error: " err)
}
else{
...
}
This code upon running using the sudo pm2 start server.js
command gives an error as follows:
python script cmd error: Error: Command failed: conda run -n p2vois python path_to_python_script_file.py arguments_for_the_python_script
/bin/sh: 1: conda: not found
However, running the same javascript file server.js with npx nodemon
or node
does not give any error.
Possible causes of error
I believe the cause should be conda trying to run the command through /bin/sh
instead of /bin/bash
. Another reason could be an underlying path issue while running with pm2
. I do not know how to fix this error, so any help would be appreciated.
CodePudding user response:
Solution
Just removed the sudo
privilege for the pm2 command and the code started working again.