- ベストアンサー
ttssh接続でバックグランドで実行、切断後フォアグラウンドにできない。
ttsshで接続し、&をつけてバックグランドでプログラム実行し、切断します。その後、再接続すると、前回バックグランドで実行されたものがjobsで表示されません。そのため、フォアグランドに戻せなくて困っています。 前回バックグランドで実行したものは、ttyが?となっているのですが、再接続後でもフォアグランドに戻せるバックグランドでの実行の方法はないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
シェルがjobsで表示出来るものはそのシェルから実行されたプロセス、つまりシェルからみたら子プロセスのプロセスになりますよね。 ログアウトすれば、そのバックグランドで実行されているプロセスの親プロセスにあたるシェルがいなくなるので、変わりにinit(プロセス番号1)が親プロセスになります。 そこにログインしてシェルがどう頑張ってもinitが親プロセスになってしまったバックグランドで実行したプロセスをシェルの子プロセスにする事は不可能ですからご希望の事は無理だと思います。 >ttyを?にしないように切断(ログアウト)する方法はないのでしょうか? ログアウト=使用していた端末の解放と同じですから無理だと思います。 仮にそういう事が出来たとして、これは接続したままの状態と同じなので端末(tty)が握られたままになります。 こういうプロセスが多数存在していまった場合に使用出来る全端末(tty)を握ってしまったら、ログインすら出来なくなります。 また、端末(tty)を握ったままにした状態でどうやってその端末に接続するのかという問題もあります。 現状ログインしてきた時、空きの端末から割り当てるので握られたままの端末に割当たる事はないだろうし。
その他の回答 (1)
- tera80
- ベストアンサー率50% (2/4)
こんばんは jobsで確認できず。psでみると端末属性が?になっているということでしょうか。 残念ながら、シェルのジョブ管理機能から切り離されたプロセスは、フォアグランドに戻すことは出来ないと思います。
お礼
回答ありがとうございます。 残念ですがあきらめるしかないようですね。 諦めてフォアグラウンドはしないことにします。
補足
ttyを?にしないように切断(ログアウト)する方法はないのでしょうか?
お礼
回答ありがとうございます。 残念ですがあきらめるしかないようですね。 諦めてフォアグラウンドはしないことにします。