UNIXの世界でscreen / tmuxをPerlに置き換えますか?

UNIXの世界でscreen / tmuxをPerlに置き換えますか?

screen / tmuxなどのソリューションが必要な場合(プロセスを長時間実行してもnohup対話が必要な場合がないため) - 特定のシステムでscreen / tmuxを使用できず、screen / tmuxをインストールすることができない場合に発生します。解決策?

Q:これを達成するために(Linux / AIX /などで)普遍的に(または普遍的に)使用できる「短い」Perlスクリプトはありますか?

これが必要です:

  1. Perlスクリプトの起動
  2. 時間がかかる特定のタスクを開始する場合
  3. たとえば、仕事用ノートブックを閉じる必要があるため、ターミナルを切断します。
  4. コンソールに再接続画面と同様に実行される長期実行プロセスの表示/制御

そのようなPerlスクリプトを持っている人はいますか?

ベストアンサー1

perlIO::Pty適切なモジュールが取り付けられていない場合は、最適ではない可能性があります。

まず、時間がかかる特定のタスク(gtttlt)がパイプとうまく機能する場合、おそらく複雑なことは必要ありません。

mkfifo input
nohup gtttlt <> input > output 2>&1 &

開始gtttlt(名前付きパイプから入力、通常ファイルとして出力)。だからあなたは添付次に変更してください:

tail -f output & cat > input

expect配管が機能せず、端末が必要な場合は、疑似端末を起動する項目(例:、zshs zptyperl's、IO::Ptyまたは次)を使用する必要がありますsshd

mkfifo input
nohup ssh -tt localhost gtttlt <> input > output 2>&1

そして添付:

stty raw -echo; tail -f output & cat > input

screenこれはまたは実装とは異なりますtmuxscreenそして、tmux端末エミュレータを実装します。再接続すると、端末エミュレータの画面内容が表示されます。ここで再接続すると、出力の最後の10行だけが表示されます(オプションをに渡して-n 123調整できますtail)。すべてのデータをホスト端末とやり取りするだけです。

おすすめ記事