• 締切済み

他のログイン中のttyをリモート操作したい

sshなどでLinuxに接続するとpts/1などのttyが割り当てられると思います。 例えば、場所Aからsshでログインしっぱなしになっていたりすると、pts/1につなぎっぱなしになります。 この時、場所Bからsshでログインすると、pts/2につながり、pts/1の作業の続きができなくなります。 このような時にpts/2からpts/1を操作できるようにする方法はありますでしょうか。 宜しくお願いいたします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

screenコマンド(標準では多分インストールされてない)を使うと、接続する端末の先に論理端末(複数)を持つことが出来て、物理端末と論理端末をつないだり、切ったりできます。 パターンその1 1.場所Aからログインしてscreenコマンドを実行してその論理端末で作業する 2.別の場所に移動するので、ログアウトせずに端末エミュレーターを終了する(論理端末を切断(detatch)してもいい) 3.場所Bからログインして、screen -r で、さっきの論理端末につないで続きをする パターンその2 1.場所Aからログインしてscreenコマンドを実行してその論理端末で作業する 2.そのまま別の場所に移動してしまった 3.場所Bからログインして、screen -ls で、セッションが残っている(attatched)の確認する 4.screen -d コマンドでそのセッションを切断(detatch)する 5.screen -r でさっきの論理端末につないで続きをする (実際には他にも色々オプションがあるので好みに応じて選択する)

inshin
質問者

お礼

ご回答ありがとうございます。 論理端末であればできるということですね! 丁寧にご解説いただきありがとうございました^^

inshin
質問者

補足

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>このような時にpts/2からpts/1を操作できるようにする方法はありますでしょうか。 セキュリティ的に考えても他人のコンソールは奪えないんじゃないですかねぇ……。 AユーザーのコンソールをBユーザーが好き勝手にいじれる。という状況はよろしくないかと。 # /dev/pts/*へ書き込む事でメッセージを送る事は可能ですが…出力だけですし。 というか…… >場所Aからsshでログインしっぱなしになっていたり という運用自体が推奨されないような気がします。 何故ログインしっぱなしにする必要があるのでしょう? 時間の掛かる作業を実行している。 とかであればnohupなりscreenなどの仮想コンソール起動して処理したり…という手があるかと思われますが……。 サーバ間で数Gのファイルをコピーする。とか言う時にscreenコマンドでシェルを起動してcp -avでコピー開始し、screenから切断してそのままログアウト。 数時間後にログインしてscreen -rで再接続して結果を確認。とかやりましたね。 他にカーネルのビルドをする時にnohupでシェルスクリプトをバックグラウンドで実行してそのまま切断。結果はnohup.logを見る。とか。

inshin
質問者

お礼

早速のご回答ありがとうございます。 > セキュリティ的に考えても他人のコンソールは奪えないんじゃないですかねぇ……。 rootだけでもできないんですかね… > 時間の掛かる作業を実行している。 その通りです! > とかであればnohupなりscreenなどの仮想コンソール起動して処理したり…という手があるかと思われますが……。 どちらのコマンドも事前に実行しておかないと意味がないですよね… 他人が書いたスクリプトを実行してみたら意外と時間がかかる、なんていうこと結構あると思いますし、screenを習慣づければいいかもしれませんが、うっかりすることもあるかと^^;

inshin
質問者

補足

検索したらこのようなことを行っている方もいらっしゃいました。 http://siguniang.wordpress.com/2013/08/29/redirect-a-running-process-output-to-a-file-and-log-out/

関連するQ&A