Je veux exécuter un script Shell sur mon serveur node.js, mais rien ne s'est passé ...
childProcess.exec('~/./play.sh /media/external/' + req.params.movie, function() {}); //not working
Un autre childProcess fonctionne parfaitement, mais pas le processus ci-dessus.
childProcess.exec('ls /media/external/', movieCallback); //works
Si j'exécute le script dans le terminal, cela fonctionne. Des idées? (chmod + x est défini)
Le rappel de la fonction exec contient des arguments error, stdout et stderr. Voyez s'ils peuvent vous aider à diagnostiquer le problème en les répartissant sur la 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);
}
});
exec('sh ~/play.sh /media/external/' + req.params.movie ,function(err,stdout,stderr){
console.log(err,stdout,stderr);
})
Exécute votre play.sh
shellscript avec /media/external/
+ req.params.movie comme argument. La sortie est disponible via stdout, variables stderr dans le rappel.
OU ESSAYEZ CECI
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
});`