これ何て呼びますか Part2

Linuxにおいて、バックグラウンドで実行され、入力待ちで停止しているプロセスの標準入力を再び開いて書き込む手段はないのでしょうか?

A 回答 (3件)

関係あるかどうかわかりませんが、


・@ITのカーネルの仮想化機能「KVM」を使うには
http://www.atmarkit.co.jp/flinux/rensai/linuxtip …
という記事の中で、
==================================================
lsofコマンドでQEMUのコンソールデバイスを調べる。
# lsof -c qemu-kvm | grep pts
qemu-kvm 8509 root 12u CHR 136,2 4 /dev/pts/2

# screen /dev/pts/2
==================================================
のようにして、
QEMUのコンソールを別端末から表示しているようです。
    • good
    • 1
この回答へのお礼

御回答ありがとうございます。lsofというコマンドがあることを初めて知りました。
私の場合は非対話シェルから実行されたプロセスのため端末を持たず、上記の方法をそのままは使えないと思います。
ただ、lsofの機能は「ファイルを開いているプロセス情報の表示」ということなので、Linuxでは標準入出力も含めてデバイスはすべてファイルとして扱われていることを考えると、端末を持たないプロセスの標準入力にアクセスする手段もありそうに思います。
もう少し調べてみます。ありがとうございました。

お礼日時:2007/08/22 17:39

jobsで表示されるなら、#1の方の回答の通りだし、表示されないなら無理だと思います。

    • good
    • 0

起動したシェルからならば、


% jobs
でジョブ番号を確認し、
% fg [%ジョブ番号]
で、フォアグラウンドに持ってこれます。
再度、バックグラウンドにするときは、
Ctrl-Zで中断した後に、
% bg
とすると、バックグラウンドで実行されます。

この回答への補足

回答ありがとうございます。

具体的にはシェルスクリプトの中で起動した(外部)コマンドに対する標準入力なのですが、起動したシェルにアクセスする術はあるのでしょうか?
さらにこのシェルもコンソールから直接起動したものではなく、かなり深いプロセス階層の子プロセスとなっています。

これから起動するプロセスならばpopen等を利用してプロセス間通信をすることができるようですが、既に起動しているプロセスに対してこれを行う手段はあるのでしょうか?

補足日時:2007/08/16 19:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報