35

I want to run a shell script on my node.js server, but nothing happened...

childProcess.exec('~/./play.sh /media/external/' + req.params.movie, function() {}); //not working 

Another childProcess works perfect, but the process above won't.

childProcess.exec('ls /media/external/', movieCallback); //works 

If I run the script in terminal, then it works. Any ideas? (chmod +x is set)

2
  • 1
    Are there any 'error's or does it output any 'data' to stdout or stderr? Commented Sep 30, 2013 at 21:02
  • /bin/sh: 1: /root/./play.sh: not found, How I have to modify my command to run this script stored in home dir? Commented Sep 30, 2013 at 21:16

2 Answers 2

60

The exec function callback has error, stdout and stderr arguments passed to it. See if they can help you diagnose the problem by spitting them out to the console:

exec('~/./play.sh /media/external/' + req.params.movie, function (error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } }); 
Sign up to request clarification or add additional context in comments.

3 Comments

/bin/sh: 1: /root/./play.sh: not found, How I have to modify my command to run this script stored in home dir?
Thank you, found it out, it was just the incorrect path. (I think I have to go to bed (23:39 UTC+1))
is exec('~/./play.sh /media/external/' + req.params.movie ... a safe construct?
5
exec('sh ~/play.sh /media/external/' + req.params.movie ,function(err,stdout,stderr){ console.log(err,stdout,stderr); }) 

Runs your play.sh shellscript with /media/external/+req.params.movie as argument. The output is available through stdout,stderr variables in the callback.

OR TRY THIS

var myscript = exec('sh ~/play.sh /media/external/' + req.params.movie); myscript.stdout.on('data',function(data){ console.log(data); // process output will be displayed here }); myscript.stderr.on('data',function(data){ console.log(data); // process error output will be displayed here });` 

1 Comment

Please, add explanation to your answer

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.