Я пишу программу cgi-bin для моего Sheevaplug (с установленной по умолчанию установкой Ubuntu), которая отображает оболочку на странице браузера. Это отдельная программа на C, которая помещается в папку cgi-bin и просматривается в браузере. Он автоматически запускает демон, и демон разветвляет экземпляр оболочки. Cgi-bin связывается с демоном через блок совместно используемой памяти, а демон связывается с оболочкой, перенаправляя свой stdin / stdout на stdout / stdin оболочки. Когда вы покидаете страницу, она автоматически отключает демон.
Это работает, если я запускаю его с помощью "/ bin / sh" и посылаю целую командную строку за раз из браузера в него. Но используя этот дизайн, он не интерактивен.
Поэтому я изменил его, чтобы посылать символ за раз в "/ bin / sh", и добавил "-i", чтобы оболочка работала в интерактивном режиме.
Когда оболочка запускается, отображается сообщение об ошибке «Не удается получить доступ к TTY, управление заданиями отключено».
Затем он отображает '$', когда он готов к вводу и, кажется, работает, но отправка ему символов удаления просто смущает его, и он не обрабатывает удаление должным образом. Я не совсем уверен, в интерактивном режиме или нет. Когда я набираю 'su root', я получаю сообщение об ошибке "должен быть запущен из терминала".
Есть идеи, что я делаю не так?
PS: Когда я это сделаю, он будет выпущен под лицензией GPL.