Может видеть вывод терминала, но не может сохранить его в файл с помощью перенаправителя оболочки - PullRequest
0 голосов
/ 24 сентября 2018

Содержимое на стандартном выводе

Я пытаюсь получить результат этого пакета, используя Nodejs.Я пытался использовать spawn, exec и log для объекта child_process для его отладки, но не вижу значения на stdout, даже если с данными stderr все в порядке.

когда я направляю вывод на терминал, я могувойти в stderr, но stdout будет пустым, если я зарегистрирую его в файле, но он действительно появится в терминале.

Затем я попытался использовать только инструмент для проверки результата, а затем подумал, что это проблема с инструментом, а неКод Nodejs.

РЕДАКТИРОВАТЬ: Добавление содержимого терминала в текст

Macbooks-MacBook-Pro:query macos$ lola --formula="EF DEADLOCK" input.lola --quiet --json
{"analysis": {"formula": {"parsed": "EF (DEADLOCK)", "parsed_size": 13, "type": "deadlock"}, "result": true, "stats": {"edges": 3, "states": 4}}, "call": {"architecture": 64, "assertions": false, "build_system": "x86_64-apple-darwin17.7.0", "error": null, "hostname": "Macbooks-MacBook-Pro.local", "optimizations": true, "package_version": "2.0", "parameters": ["--formula=EF DEADLOCK", "input.lola", "--quiet", "--json"], "signal": null, "svn_version": "Unversioned directory"}, "files": {"net": {"filename": "input.lola"}}, "limits": {"markings": null, "time": null}, "net": {"conflict_sets": 6, "filename": "input.lola", "places": 8, "places_significant": 6, "transitions": 7}, "store": {"bucketing": 16, "encoder": "bit-perfect", "threads": 1, "type": "prefix"}}
Macbooks-MacBook-Pro:query macos$ lola --formula="EF DEADLOCK" input.lola --quiet --json 2> aaa.txt
{"analysis": {"formula": {"parsed": "EF (DEADLOCK)", "parsed_size": 13, "type": "deadlock"}, "result": true, "stats": {"edges": 3, "states": 4}}, "call": {"architecture": 64, "assertions": false, "build_system": "x86_64-apple-darwin17.7.0", "error": null, "hostname": "Macbooks-MacBook-Pro.local", "optimizations": true, "package_version": "2.0", "parameters": ["--formula=EF DEADLOCK", "input.lola", "--quiet", "--json"], "signal": null, "svn_version": "Unversioned directory"}, "files": {"net": {"filename": "input.lola"}}, "limits": {"markings": null, "time": null}, "net": {"conflict_sets": 6, "filename": "input.lola", "places": 8, "places_significant": 6, "transitions": 7}, "store": {"bucketing": 16, "encoder": "bit-perfect", "threads": 1, "type": "prefix"}}
Macbooks-MacBook-Pro:query macos$

1 Ответ

0 голосов
/ 24 сентября 2018

Мне кажется, что проблема на самом деле не связана с nodejs.Я быстро прогуглил этот инструмент Lola, и похоже, что он может иметь какой-то собственный stdout / stderr, поэтому он может вести себя по-разному при регулярном использовании из терминала, чем когда вы указываете перенаправления для stdout и stderr.

Одним из возможных исправлений для вас будет использование опции --json и указание временного имени файла, а затем ваш код nodejs прочитает результат из созданного временного файла.(Если вы не можете понять проблему stdout / stderr.)

...