У меня есть приложение, которое перезагружается при ошибке.pgrep --count program всегда возвращает 0, даже если есть, очевидно, экземпляр программы
Поскольку инициализация может занять некоторое время, я использую другое приложение для загрузки загрузочного видео.
Поскольку инициализация зависит от интернет-соединения, она может перезапустить много времени, поэтому мне нужно запустить видео один раз, после проверки того, что экземпляр программы еще не запущен.
Я думал, что я мог бы сделать так, как это:
var arg = 'pgrep --count omxplayer | echo $?';
exec(arg, function(err, stdout, stderr) {
var data = '' + stdout[0];
console.log(data);
if (data === '0') {
callback(true);
} else {
callback(false);
}
});
обратного вызова начать omxplayer, если аргумент является ложным.
Проблема заключается в том, что когда я смотрю на свой журнал, я вижу, что данные всегда равны 0, что заставляет приложение запускать столько же omxplayer, сколько и при перезагрузке.
У меня такая же проблема с pkill -0 omxplayer | echo $?
Как я могу проверить, если omxplayer работает или нет? Или как я могу исправить свой код?
Попробуйте сделать «pgrep -lv omxplayer», в то время как omxplayer активен, вы должны увидеть его в списке, который возвращается. Тогда вы можете понять, почему это не соответствует, может быть несоответствие случая, когда вам нужно сделать «pgrep -i -count omxplayer» – hwatkins
'pgrep -lv omxplayer' дать мне список процессов, но нет omxplayer или что бы там ни было ... Я знаю, что omxplayer запустил omxplayer.bin, это нечетно, я так посмотрю – DrakaSAN
v инвертировать результат, без него. Я получаю процесс omxplayer – DrakaSAN