У меня есть сценарий bash, который я использую на стороне сервера от метеор. Я проверил, что я успешно могу запустить команды оболочки, запустив 'ls' и получив ожидаемый ответ. Однако, когда я запускаю сценарий оболочки, на серверную консоль никогда не выводится вывод, и ни один из предполагаемых эффектов сценария не будет успешным. Я печатаю stderr, stdout и ошибку, но они ничего не печатают при запуске моего скрипта.Проблемы с сервером сервера сценария bash от Meteor
Meteor.methods({
grade: function(unittest, code) {
this.unblock();
var sys = Npm.require('sys');
var exec = Npm.require('child_process').exec;
// exec('/bin/ls /srv/srcalyzer/scripts', function(error,stdout,stderr){
// console.log('error: ',error);
// console.log('stdout: ',stdout);
// console.log('stderr: ',stderr);
// });
console.log('running grade')
exec('/bin/bash /srv/srcalyzer/scripts/grade.sh', function(error,stdout,stderr){
console.log('error: ',error);
console.log('stdout: ',stdout);
console.log('stderr: ',stderr);
});
console.log('just finished.');
},
Хотя в настоящее время закомментировал/bin/LS/некоторые/путь регистрирует ожидаемый выход на консоль. Однако, когда я запускаю/bin/bash /path/to/.sh, что я знаю, на месте. Консольный вывод выглядит как
I20161207-15:22:07.031(-5)? running grade
I20161207-15:22:07.045(-5)? just finished.
Скрипт занимает короткое время (~ 15-20 секунд). Я не уверен, что это важно или нет.
Может кто-нибудь, пожалуйста, помогите мне понять, что происходит?
Моей догадкой является 'grade.sh' никогда не заканчивает работает так, что вы не видите какие-либо журналов в консоли – Khang
@Khang Я дал ему немного посидеть и проверить, было ли это так, я добавил строку в начале скрипта, которая добавила бы строку с текущим временем в файл и никогда не записывала. Это означает, что файл никогда не запускается. –