5つの方法はリモートサーバのセッションを維持します.接続を切断した後、中断されません.


記事の目次
  • 概要
  • linuxプロセス
  • Normal Process
  • Orphan Process
  • Daemen Process
  • ssh sessionを保持し、接続を切断した後、動作を維持する5つの方法
  • .
  • 1.screen sessionを使用する
  • .Tmuxを使用する
  • .nohupコマンドを使用する
  • .disownコマンドを使用する
  • .setsidコマンドを使用する
  • 概要
    _; は簡単に言うと、SSHまたはSecure Shellは他のシステムに遠隔でアクセスする別のユーザの方法であるが、コマンドライン、すなわち非GUIモードでのみ実行される.私たちはリモートコンピュータでコマンドを実行すると、実際に疑似端末を作成し、ユーザー登録のshellに追加します.  セッションを終了してからしばらく時間が経過したら、SIGHUP信号は疑似端末に送信され、その端末で実行されるすべてのタスクを停止します._; しかし、時にはプログラムをサーバーに保持して実行する必要があります.この時は接続を切断してプログラムを実行していく必要があります.一般的なコマンドps -ef | grep xxxは、現在のプロセスを問い合わせるために使用されます.pythonが実行するプログラムを検索するならば$ps-ef grep python
    linuxプロセス
    Normal Process
      正常プロセスとは、会話の寿命を持つプロセスを指します.彼らはセッション中にフロントプロセスとして起動し、特定の時間帯またはセッションのログアウト後に終了します.これらのプロセスの所有者は、rootを含むシステムの任意の有効なユーザです.
    Orphan Process
    父プロセスが入城した後、父プロセスが突然終了し、initを親プロセスにしました.このようなプロセスはinitを直接親レベルとし、initはこれらのプロセスが死亡または終了するのを待つ.
    Daemen Process
    このようなプロセスは故意に孤立したプロセスであり、これらは故意にシステムに残して実行するプロセスをデーモンと呼び、あるいは故意に孤立したプロセスである.このようなプロセスは一般的に長時間にわたって実行されるプロセスであり、一旦起動すると、どの制御端末とも分離され、バックグラウンドで実行できます.これらのプロセスの親プロセスは、子プロセスがバックグラウンドで実行されるように意図的に終了します.
    ssh sessionを保持し、接続を切断してから運転を維持する5つの方法
    1.screen sessionを使う
      screenはLinuxのテキストウィンドウマネージャであり、ユーザーに許可する.
  • は、複数の端末セッションを同時に管理する
  • .
  • はセッション間で
  • を切り替える.
  • は、セッション実行の出力結果
  • を記録する.
  • は、セッションがキャンセルされたり、端末が閉じられたりすることを心配することなく、いつでもセッションを再開する.
  • screen sessionsは起動後に制御端末から分離され、バックグラウンドで動作し、いつでもどこでも回復することができる.screen sessionを起動したら、疑似端末(または制御端末)から分離することができます.その後再登録すると、セッションを再開して運転結果を確認します.ステップ
  • screen sessionを起動する:(サーバに接続する)bash入力screen
  • このとき、bashのコマンドは、もはやbashを閉じるために中断されることはない.
  • は、Ctrl+a then dを入力して、入力されたコマンドを分離する.この時は安心して遠隔接続をオフにできます.
  • に接続されています.
  • (再登録サーバ)screen -rを使って、あなたのscreen session
  • を再開します.
    いくつかのscreen常用命令
    コマンド
    説明
    screen
    screen sessionを作成します.
    screen-ls
    現在のscreen sessionを列挙する
    screen-list
    同上
    screen-r[session]
    screen sessionを復元し、表示期間出力
    ctrl+a+d
    現在のscreen sessionを終了します.
    screen-X-S[session]キルル
    キルとあるscreen session
    screen-X-S[session]quit
    徹底的にキル某screen session
    screen-S session-X quit
    同上
    2.Tmux(Terminal Multilexer)を使用する
      Tmuxの使い方を詳しく知るために、screenの代替品として生まれたTmuxは、screenの機能の大部分を持ち、必要で少量の機能が加えられています.Tmuxは、screenが提供するすべてのオプションに加えて、複数のウィンドウの間でウィンドウの水平または垂直分割、ウィンドウのペインのサイズの調整、セッションアクティビティの監視、コマンドラインモードを使用してスクリプトの作成などを可能にする.Tmuxのこれらの機能は非常に使いやすいので、ほぼすべてのUnixの発行版はTmuxを広く埋め込んでいます.ステップ
  • Tmux sessionを起動します.(サーバに接続します.)bashはtmux
  • を入力します.
  • このとき、bashのコマンドは、もはやbashを閉じるために中断されることはない.
  • は、tmux detachまたはCtrl+b then dを使用して、この入力されたコマンドを分離する.この時は安心して遠隔接続をオフにできます.
  • に接続されています.
  • (再登録サーバ)tmux attachを使って、あなたのscreen session
  • を再開します.
    3.nohupコマンドを使う
    nohupコマンドを使用して、セッション終了時に送信されるSIGHUP信号を無視するプロセスを教えます.したがって、コマンドはセッションキャンセル後でも保留されます.セッションをキャンセルすると、このコマンドは制御端末から分岐し、デーモンとしてバックグラウンドで実行します.構文:
    nohup your_command &
    
    車を返すとIDが与えられます.再登録する時はfg %your_idを使って前のセッションに入ります.
    4.disownコマンドを使用する
      disdownはシステムの流れsessionリストから現在のセッションを削除します.したがって、プロセスはbashクローズ後に終了されません.shellのSIGHUPを受信しないからです.この方法の欠点は、プログラムがstdinとstdoutとインタラクションできないことであり(もちろん、入力と出力をリダイレクトすることができます)、sessionがstdinまたはstdoutとインタラクションを試みると、プロセスは停止します.構文:
    diswon your_command
    
    4.setsidコマンドを使用する
    _; はsetssid時nohup命令の改良バージョンと考えられます.nohupには、命令を実行するプロセスグループが不変であるという欠点があります.したがって、nohupを使用して実行するコマンドは影響を受けやすいです.setsidコマンドのプロセスグループは変化することができます.nohupの欠点を回避しました.文法はnohupに似ています.構文:
    setsid your_command
    
    説明が必要なのは、nohup、disdown、setsidはすべて入力出力をリダイレクトすることができます.