LINUX.ORG.RU

Как запустить редактор из скрипта?

 , ,


0

2

пишу маленький интерпретатор на nodejs. Из него не запускается редактор.

вот я допустим, пишу

exec("vim", onExec)
и ничего не происходит

Как решить?

PS попробовал таким образом запустить сторонний интерпретатор, тоже не запускается.

ЗЗЫ Сейчас проверил, на самом деле запускается, он в процессах висит, по ps -al из другого терминала выводится, но он не появляется в текущей сессии, его не видно просто



Последнее исправление: questvimnode (всего исправлений: 2)

А баш тут при чем?

ashot ★★★★
()

А чего ты ждёшь, собственно? Если ввод-вывод дочерних процессов связаны, то всё работает как надо - пиши редактору команды (":q!\n", например) и читай из него изображение окна (и обрабатывай ansi последовательности, кстати). Если тебе окошко надо, то нужно запускать программу с окошком (xterm... etc). И то не факт, что окошко ты увидишь, т.к. что там за переменные окружения ещё неизвестно (нужна DISPLAY).

anonymous
()
Ответ на: комментарий от anonymous

не, гуй мне не нужен. А в другой то терминал его хотя бы можно вывести тривиально, чтобы в нем редактировать можно было, как обычно?

И я не пойму, почему из башскриптов он запускается, а отсюда нет? В чем разница то?

questvimnode
() автор топика
Ответ на: комментарий от questvimnode

Ещё раз: потоки ввода/вывода твоей программы связаны с чем-то. Потоки вызванного процесса обычно наследуются от родительского процесса. В твоём случае этого не происходит - значит js связывает потоки подпроцесса с некими внутренними переменными. Поищи exec с аргументами-потоками или функцию переназначения. Или просто почитай, что делает exec.

anonymous
()
Ответ на: комментарий от anonymous

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

questvimnode
() автор топика
Ответ на: комментарий от questvimnode

Читайте об этом в том же ответе в блоке после кода (Update).

znenyegvkby
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.