問題タブ [tty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - リモート git post-receive フックの一部としてユーザー入力を受け入れることは可能ですか?
master をプッシュするたびに master ブランチをデプロイする post-receive フックがあります。
展開をオプションにしたいと思います。フックは、これを達成するために単純な Y/N 応答を要求します。以下の bash 擬似コード:
post-receive フックが stdin で引数を取得する方法のため、 read
ラインはユーザーからの入力のために一時停止せず、スクリプトは Y/N 応答を取得しようとして何度もループします。
/dev/tty
から具体的にリクエストすると、これが修正されると思いました。
ただし、入力がキーボードから来ていないため、スクリプトは無限にループします。
この状況で実際にキーボード入力を取得することは可能ですか?
編集:
ああ。実際には ssh が原因のようです。 < /dev/tty
出力を見て、I'm seen /dev/tty: No such device or addressを追加しました
そして、スクリプトをローカルで実行する場合、これを模倣できますが、ssh を介して:
編集2:
したがって、-tオプションをsshに設定して、sshセッションでttyを有効にするようにttyを要求するか、サーバーのauthorized_keysファイルでキーごとに有効にすることができます
編集3:
~/bin/ssh-t 作成後
(ダブル -t オプションは tty を強制します)そしてそれを指すように GIT_SSH を設定すると、恐ろしい致命的なエラーが発生します: プロトコル エラー: 行の長さが正しくありません: 文字の後に 005 が続きます。 git を実行する機会があります
linux - gnu画面でCR/LFを切り替える方法は?
画面を使用して、シリアルコンソールからテキストを読み取ります。問題は、出力に改行のみが含まれているように見え、\ nキャリッジリターンが含まれていないように見えるため、表示は次のようになります...
この問題を修正するパッチはありますか?
python - より粒度の高い Python を使用した「スクリプト」vim
vim を自動化できる python スクリプトを作成しようとしていますが、python vim インターフェイスでは、必要なすべてを実行するのに十分な力が得られません。スクリプトがttyであるかのようにvimと通信したい(「ビジュアルモード」命令などを発行できる)。vimに関する限り、私のスクリプトはxterm(または何でも)を実行する人間です。これは、Python で独自のターミナル エミュレータを構築せずに実行できますか?
python - XML ファイルへの VT100 エスケープ コードの保存
端末との対話をログに記録する Python プログラム (スクリプト プログラムと同様) を作成しています。ログを XML 形式で保存したいと考えています。
問題は、端末の対話に VT100 エスケープ コードが含まれていることです。UTF-8 でエンコードされたファイルにデータを書き込んでも、Python は文句を言いません。
このスクリプトは、ファイルをディスクに書き込むという意味では「機能」しますが、結果のファイルは適切な utf-8 ではないため、etree などの XML パーサーがエスケープ コードをバーフします。
これに対処する 1 つの方法は、最初にエスケープ コードを除外することです。しかし、エスケープ コードが維持され、結果のファイルが etree のような XML ツールで解析できる場合、このようなことを行うことが可能でしょうか?
stdout - /dev/tty で STDOUT と STDERR をリセットする
stdout と stderr をファイルにリダイレクトしてから、元の設定に戻そうとしています。出力をファイルに正常にリダイレクトしましたが、tty からそれらを復元できないようです。これは私が持っているコードです:
tty での open 呼び出しは常に失敗します。(-1 を返します)。私がやろうとしている根本的に間違っていることはありますか?
また、パーミッションの問題かもしれないと思ったので、チェックしました:
crw-rw-rw- 1 ルート ホイール 2、0 10 月 21 日 10:46 /dev/tty
私はSnow Leopardで開発しています。
助けてくれてありがとう。
php - PHP create'fake' TTY for sudo
簡潔に保つ;
PHPスクリプトを実行し、sudo-ersファイル/etc/init.d/nagios reload
に追加apache ALL = (nagios) NOPASSWD: /etc/init.d/nagios
する必要がありますが、SUDOを使用するにはPHPにTTYが必要です(削除したくないDefaults requiretty
ので、PHPスクリプトの「偽造」またはTTYを作成して、Nagiosをリロードできるようにします。
RedHat 6、PHP 5.3
tty - LinuxでのTTYの内部動作
私はしばらくの間、 TTYドライバーがどのように機能するかを理解しようとしてきました(各カーネルの実装は異なる可能性があることを完全に理解しています)。
stdin
ただし、xtermには、、stdout
またはがないと主張していることに気付きましたstderr
。xtermやその他のターミナルエミュレータは、bashやその他の子プロセスから入力を取得して、ウィンドウに出力できるようにする方法を教えてください。ターミナルエミュレータはTTYドライバに接続されていますか?
git - 「チャネル0でPTY割り当て要求が失敗しました」でロックアウトされたときにシェルアクセスを取得する方法
リモートシェルにgitosisをインストールしました。正常に動作しています。しかし、今はインタラクティブシェルにログインできません。ここで述べたように、それはgitosisがttyを無効にしたようです。とにかくそれを取り戻すことができますか?リモートサーバーへのrootアクセス権がありません。
c++ - Solaris の TIOCEXCL
少し問題があります。/dev/term/0 などのシリアル ポートを使用しており、このデバイスへの複数のアクセスをロックする必要があります。そのために、次のコードを使用します。
すべて正常に動作します。次に、別のアプリケーションを実行してこのポートを開こうとすると、エラー EBUSY が発生します。問題はありませんが、この瞬間に最初のアプリケーションが動作を停止します。このポートを読み書きできず、閉じることができません。エラー ENXIO (No such device or address) が常に 1 つしかありません。
このコードを Linux と Mac OS X でテストしたところ、すべて問題なく動作しましたが、Solaris では...
どうすればいいのかわからない。
macos - MacOS: /dev/tty.* と /dev/cu.* の違いは何ですか?
各シリアル デバイスは に 2 回表示されます。1 回は/dev
として、もう 1 回は として表示さtty.*
れcu.*
ます。
cu.*
デバイスは何ですか?端末との違いはtty.*
?