Ejecute el script de shell con node.js (ChildProcess)
Quiero ejecutar un script de shell en mi nodo.servidor js, pero no pasó nada...
childProcess.exec('~/./play.sh /media/external/' + req.params.movie, function() {}); //not working
Otro ChildProcess funciona perfecto, pero el proceso anterior no lo hará.
childProcess.exec('ls /media/external/', movieCallback); //works
Si corro el script en terminal, entonces funciona. Alguna idea? (chmod + x está establecido)
34
2 answers
La función exec callback tiene los argumentos error, stdout y stderr pasados. Vea si pueden ayudarlo a diagnosticar el problema escupiéndolos a la consola:
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);
}
});
57
Author: smokey.edgy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-28 01:44:12
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-28 01:44:12
exec('sh ~/play.sh /media/external/' + req.params.movie ,function(err,stdout,stderr){
console.log(err,stdout,stderr);
})
Ejecuta su play.sh
shellscript con /media/external/
+req.params.película como argumento. La salida está disponible a través de stdout,variables stderr en la devolución de llamada.
O PRUEBA ESTO
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
});`
5
Author: n_rao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-28 07:11:05
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-28 07:11:05