ctrl + zとbgを介してバックグラウンドでジョブが実行されています。 sshに再接続した後、jobsコマンドはジョブを見つけることができませんが、ps grepでは見つけることができます。これでこれを検索して、tmuxがより良い解決策である可能性があることがわかりました。しかし、まだ ssh 出口が jobs コマンドでジョブを失う理由を知りたいです。バックグラウンドに入れておきましたが、再接続後もなければなりませんか?
答え1
シェル操作はユーザーに直接属しません。私の言うことは、ユーザーのためのグローバルタスクリストがないということです。タスクはユーザーに属するプロセスであり、そのユーザーに属するすべてのプロセスを見つけることができます。しかし、仕事ごとに職業としてシェルプロセスに属し、シェルはリストを保持し、そのアクションを追跡します。シェルプロセスが終了すると、ワークプロセスは生き残ることができますが、このプロセスを含む現在のタスクのリストがないため、これは「記録にある」タスクにすぎません。
切断すると、シェルプロセスは終了します。再接続すると出ます。新しいシェルプロセスが作成されました。新しいプロセスは、他のシェルプロセス(まだ実行中または終了)の操作について何も知りません。新しいシェルが他のシェルの操作を採用できるようにするメカニズムはありません。
シェルは内部にあるか、tmux
接続screen
が失われても保持できます。再接続すると再びアクセスできます。同じシェル。誰もが自分の仕事を何も起こらなかったかのように覚えています。なぜなら彼らの視点では何も起こらなかったからです。