2016-06-20 8 views
1

私はViewsを使用してエンドユーザーとやりとりし、オペレーティングシステム(Linux)をアンダーレイすることでその作業を行うdjangoベースのアプリケーションを開発しました。このシステムの目的は、Linuxベースのシステムに対するユーザーフレンドリーなインターフェースを提供することです。この作業は、DjangoとPythonを使用してほぼ完成しました。今、顧客はLinuxがこれらのコマンドをリアルタイムで処理する方法を見たいと思っています。Linux端末をDjangoベースのWebページに埋め込む方法は?

ウェブサイトのビューでファイルを見つける例を挙げると、テキストボックスにはファイル名を入力し、検索というボタンを押します。その結果、システムは最大5分かかることがあり、検索コマンドの実行終了時に結果を戻してユーザーに返します。顧客は座って旋回するポップアップを見て、ウェブページ上のLinuxシェルまたは同様のものを見たいと思っています。

==>私の質問は、Linux Shell/terminalをウェブページにどのように統合できるのでしょうか?

この問題の代替手段はありますか?新しい行がShellの標準出力に送信されるすべての画面をリフレッシュしてLinuxのコマンドライン出力を表示できるかどうかは気にしません。

お知らせください。おかげさまで

+0

あまりにも広すぎます。これに完全に答えるには、セキュリティの考慮事項(サンドボックス、chrootなど)、接続タイプ(httpとWebソケットの違い)、単一のLinuxディストリビューションをサポートするかどうか、そしてそれを継続するかどうかについての議論が必要です。 –

+0

私はVirtualbox環境にアプリケーションを書いています。要件に応じて、Virtualbox/VDIファイル全体を取得するので、そのマシン固有の設定だけになります。セキュリティは重要ではありません。なぜなら、顧客はイントラネット上でこのアプリケーションを実行していることになります。 – learner

+0

あなたは、rootとしてコマンドを実行したり、プログラムの実行を中断させるようなコマンドを実行したりすることに注意を払う必要があります。 –

答えて

1

shellinaboxまたはwettyをご覧ください。両方とも時間とともに維持されます。
shellinaboxから引用:ボックスで

シェルは、Webベースの端末エミュレータに任意のコマンドラインツールをエクスポートすることができ、Webサーバーを実装しています。このエミュレータは、JavaScriptおよびCSS対応Webブラウザからアクセスでき、追加のブラウザプラグインは必要ありません。 shellinaboxdデーモンは、指定されたポートでリッスンするWebサーバーを実装します。 Webサーバは、AJAX Webアプリケーションとして実装されたVT100エミュレータに表示される1つ以上のサービスを公開します。 HTTPおよびHTTPS経由でwetty

ターミナルから引用

。 Wettyはajaxterm/anytermの代替品ですが、WettyはChromeOSのターミナルエミュレータ(hterm)を使用しています。これは完全にJavascriptで書かれたターミナルエミュレーションの完全な実装です。また、AjaxではなくWebSocketを使用し、応答時間も向上します。

ウェッティにもドッキングされたバージョンがあります。

関連する問題