• ベストアンサー

GNU Screenについて

Linux上でGNU Screenを使っています。 一度デタッチしたセッションにアタッチすると同時にそのScreen上でシェルのコマンドを実行したいのですが良い方法はないでしょうか。 -XオプションはScreenのコマンドを実行するものだと認識しております。 ご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • P-mann
  • ベストアンサー率62% (56/89)
回答No.2

ANo.1です。 思いついたんですが、 screen -r -X exec ls などの方法でできないでしょうか。-pオプションを併用するとwindowも選択で きるはずです。 ただ、このままではreattachされた状態にならないので、 screen -r -X exec ls; screen -r こんな感じでどうでしょうか。 -rオプションはdetachされていることが前提となりますので、 screen -d -r -X exec ls; screen -d -r とする方がいいかもしれません。

Keck-init
質問者

お礼

できました! 本当にありがとうございます。

その他の回答 (1)

  • P-mann
  • ベストアンサー率62% (56/89)
回答No.1

-Xオプションは「screenに」コマンドを送るオプションです。 ですので、screenを実行してwindowを2つにし、attachしたまま  screen -X next と実行すると次のwindowに移ります。 と、ここまでは分かるんですが、どうすればご希望のことをできるかが分かり ません・・・。

Keck-init
質問者

補足

申し訳ありません。 screen -r sample のようにしてアタッチすると同時に例えば ~/test.sh のようにscreen内でシェルスクリプト等を実行させたいのです。 わかりにくい質問で申し訳ありませんでした。

関連するQ&A

  • シェルスクリプトで一時的にルート権限として実行

    Linuxのシェルスクリプトでそのスクリプトファイルを実行したユーザーにかかわらずそのスクリプト内のコマンドがルート権限として実行されるようにしたいのですが良い方法はありますか? ルートのパスワードを入力せずに一時的にルート権限を使用できるようにしたいのです。 やりたいことは screenでルートユーザでしかアタッチできないプロセスに一時的にアタッチしてコマンドを実行してデタッチするということなのですが… screenにはマルチユーザー機能が在るようで、それはscreenでルートがアタッチしてる場合のみですよね? 間違っていたらすみません。 OSはCentOS 6.2です。 必要な情報があれば補足で追加致します。 宜しくお願いします。

  • Linuxのシェル(sh,bash等)について

    Linux上でコマンドを実行するとき、その窓口となるものが、シェル(sh,bash)という認識です。 つまり、 (1)CUI環境でLinuxを操作する上で、シェル以外でコマンドを実行する事はありうるのか? (2)Windowsのコマンドプロンプトも一種のシェルと言えるか 以上、2点についてお教え頂きたいです。 宜しくお願いします。

  • GNU GRUBを削除できません

    GNU GRUBをWindowsブートローダーに書き換えたいのですが、うまくいきません。状況は以下のようになります。 [PCの状態] GNU GRUBによってWindows Vista、Vistaの回復コンソール、OpenSUSE、OpenSUSEのfailsafeが選べる状態になっています。 [問題] (1)Windows Updateが出来ない。SP適用の際、自動再起動時にエラーが出る。エラー番号を調べるとサードパーティーのブートローダーが原因とあります。 (2)研究室内のPCで、OBの方がデュアルブート環境を構築したようなのですが、現在誰もLinuxを使っていないので、ブートが少し面倒です。また、HDDの容量もひっ迫しています。 [目標] 少なくとも上記(1)は解決したいです。 [試したこと] GNU GRUBをWindowsブートローダーに書き換えようとしました。その際、以下を試みました。 (1)GRUBから起動できるシステム回復オプションを用いてbootrec.exe /fixbootとbootrec.exe /fixmbrで修復しようとしました。しかし、まずOS選択画面に何も出てきませんでした。それを無視してコマンドプロンプトを使用したところ、fixmbrは成功したものの、fixbootで「このボリュームのファイルシステムが認識できない」とエラー出ました。なお、そのときのプロンプトの表示は「X:\windows\system32」でした。この後再起動しても状況は変わりませんでした。 (2)上記と同様の過程で、今度はコマンドプロンプトではなくスタートアップ修復を実行しました。しかし修復出来ないとエラーが出てしまいました。 (3)Vistaを通常起動してcheck diskを行ってもエラーは出ませんでした。 以上です。共用のPCなのでなるべくOS再インストール等は避けたいと思っています。宜しくお願いします。

  • GNU make終了時にコマンドを実行できますか?

    GNU make 4.x(4.1か4.2)を使ってMakefileを実行したとき、そのMakefileが成功しても失敗しても、make終了時に何かを実行させる方法は用意されていますか? "make && コマンド"や"make || コマンド"などの複合コマンドのほか、シェルスクリプト内で"make"とコマンドを連続実行するという方法は除きます。あくまでも"make"単体で実行するものとします。 実際そういうことをしたいというのではなく、"make"実行後、Makefile中で生成した一部の中間ファイルが勝手に削除されるという謎の現象が発生しており、その原因を探りたいです。 Makefile中の実行コマンドにわざとエラーを起こすようなコマンドを入れてみても(例えば存在しない"hogehoge"のようなコマンド)、そのエラーが表示された直後に、"rm XXXX YYYY"(XXXXとYYYYはMakefile内部で生成したファイル名)のようなコマンドが表示されて、実際にそのファイルは生成しているはずなのに消えてしまっています。 上記のエラーを起こすコマンドの前に"ls -l ディレクトリ名"を実行するようにして、エラーを起こす直前に中間ファイルが存在することは確認できています。しかしその後、勝手に"rm"が実行されてそのファイルは消されてしまいます。 よろしくお願いします。

  • UNIXシェルのデバッグ

    サーバーを更改したので業務システムを丸ごと 新しいサーバーへコピーしてきました。メニューのシェルが数十個 あるのですが、恐らくそのまま動くとは思うのですが、一応 シェルからシェルへの移動(遷移っていうんでしょうか)くらいは 確認しようと思っています。 そのままシェルを順番に動かす以外の手法は何かありませんでしょうか? sh -xで動かせば詳細な情報をログとして残せますが、シェル内のコマンドも 実行してしまうので時間がかかります。シェル内のコマンドを実行させないで すむ手法があればご教授ください。

  • シェルからpsqlコマンドでトランザクション

    標題についてご教授下さい。 シェル内でpsqlコマンドから オプション c にて BEGIN ↓ DELETE ↓ COPY xxx FROM xxx.sql ↓ COMMIT の流れでシェルコマンドを実行したいのですが、 いい方法ありますでしょうか。 もちろんエラーハンドリングもしたいです。 COMMIT前に エラーがあったらROLLBACK したいです。 シェルだと難しいのでしょうか。

  • Debian/GNU Linux V.3.1r1 導入時のNIC自動認識(PCMCIA)について

    お世話になります。 一度導入したDebian/GNU Linux V.3.1r1が不安定になり、いろいろ対処したのですが(間違いもあり)、別環境に再導入をしようと考えています。 TOSHIBA DynaBook TECRA 510CTです。 FPDで起動しPCMCIAのNICを使ってのネットワークからのインストールをしているのですが、NICの自動認識がされません。 corega FEther PCC-TXFも駄目 昔購入したGateway社の純正も駄目です。 どちらもIBM ThinkPad x365ではDebian/GNU Linux V.3.1r1の導入時認識されることまでは確認できています。 TOSHIBA DynaBook TECRA 510CTも、TURBO Linux 7では上記PCMCIAのNICで導入したことがあるので、Debian/GNU Linux V.3.1r1ではPCMCIAのドライバが対応していないのではないかと考えています。 導入時、Alt-F2で設定ファイルを変更することができることは確認しました。(ネット上の情報ではcorega FEther PCC-TXFが標準では未対応となっていましたが。configを見てみると記述がありました。) PCMCIAのドライバをなんとかすることは出来ますでしょうか?

  • Cygwinのlsコマンドについて

    Cygwinの場合、以下のオプションでlsコマンドを実行すると $ ls --full-time -rwxr-xr-x 1 aaaa なし 139 2006-08-23 15:01:34.203125000 +0900 ls.sh と表示されます。 Linux(redhat)上で同様のコマンドを実行すると、 $ ls --full-time -rwxr-x--- 6 root root 4096 Wed Aug 09 16:59:03 2005 ls.sh と表示されます。 タイムスタンプの表示形式が異なっていますが、 Cygwin上で、Linuxのような表記をしたいのですが、 可能でしょうか。ご教授お願い致します。

  • Kシェルのリダイレクト

    Kシェルのリダイレクト シェル初心者で申し訳ございませんが、ご教授いただけたら幸いです。 やりたいこと  xxx.kshの実行ログを出力したい。 出力したいログは、以下コマンド実行時に標準出力されるログをファイルへ落としたい。 尚、実際の実行コマンドは、ksh -xは入力しません。 $ ksh -x ./xxx.ksh 上記コマンドを実行すると、詳細なログが表示されるのですが、ファイルへ落としたいと思います。 分かりづらいかも知れませんが、宜しくお願い致します。

  • uname -a のオプション

    Linuxのunameコマンドで、-aのオプションをつけると $ uname -a  Linux kitty 2.4.22-1.2115.nptl #1 Wed Oct 29 15:42:51 EST 2003 i686 i686 i386 GNU/Linux こんな感じで表示されますよね? で、このuname -a の後ろにさらに何らかのオプションをつけると $ uname -a ○○ (-か|かをつけてなんらかのアルファベット) Linux kitty 2.4.22-1.2115. nptl #1 Wed Oct 29 15:42:51 EST 2003 i686 i686 i386 GNU/Linux こんな感じで縦に表示されたのですが、どういうオプションを付けたのかわからなくなりました。 縦にひとつひとつ分かれてた方が見やすいので、わかる方お願いします。