2009-05-25 6 views
1

私は幾分ばかばかしいと感じていますが、私は比較的Linuxの方が新しいです(時間よりも経験が多い)。そして、私がいつも疑問に思っていたことの1つは、実行中です。Linux - プロセスと通信していますか?プロセスの再結合?

たとえば、ゲームサーバーまたはeggdrop IRC botをバックグラウンドで実行するように設定した場合、そのプロセスを実際に表示してコンソールに配信するすべての出力を表示するためのコマンドがありますか?

「トップ」コマンドを使用してプロセスを表示しているのではなく、実際にコマンドラインから実行したように実際にリンクしています。

ありがとうございました。

答えて

5

デバッガ(あなたは切り離し、かなり自然な方法で端末に再接続できた)実行中のプロセスに「添付」することができますが、screenでプログラムを実行する方がよいかもしれません。


にいくつかの良いもの良いものがあるかもしれません:

+0

私のプロバイダは、ラッキーな私の画面を無効にしています:) – scrot

+0

+1画面。画面では、同じセッション内の同じ用語/複数の用語セットにアタッチすることができます。 – JensenDied

2

あなたはより具体的なことはできますか?あなたは、現在のセッションのプロセスをバックグラウンド処理し、それをフォアグラウンドに戻すことについて話していますか?

例えば:

doLongTask & 

# Later 

fg %3 

3この例ではdoLongTaskのこのインスタンスのジョブ番号です。

jobs 

これは、コンソールに何が出力されているかを表示するだけです。 I. stdoutとstderrからリダイレクトを除いたものです。

2

簡単な答えは次のとおりです。(それはまだ時に実行しているコンソールセッションからサーバーを切断するような、より複雑なもののため

>> ./runmyserver & 

>> ./runmyserver 
<press ctrl-z> 
>> bg 
>> ...do something else ... 
>> fg 

またしてバックグラウンドで起動することができますあなたはログアウトします)あなたは本当に画面が必要です。たぶんそれを請うかもしれませんが、それは本当にセキュリティ上のリスクではなく、周りに持てる便利なプログラムです。

実際には、bgまでctrl-zがサーバーを一時停止するので、プレイしている人がビートをスキップする可能性があります。

最後に、多くのゲームサーバーでは、これらの問題の多くを解決するこの種のリモートログインがあります。代わりのものを探す前にゲームとホストがこれをサポートしていないことを確認してください。

EDIT:質問を再読します。ファイルへのリダイレクトを使用して少なくとも出力を得ることができるように思えます。これは、あなたがが複数の入力を追加できません。

./runmyserver > log.txt 
0

あなたが先にあなたがこれを行うには、画面のセッションでフォアグラウンドでスクリーン(1)し、実行サーバーを使用したい時間のわかっている場合。画面セッションから切り離して、プロセスを実行し続けることができます。後で、画面セッションを再接続してから、スクロールバックバッファーのサイズまでの出力を見ることができます。