すべてのプロダクト
Search
ドキュメントセンター

:SSH 切断後も Linux 上でプロセスを実行し続ける

最終更新日:Nov 06, 2025

ソリューションの選択

SSH セッションを閉じた後もコマンドを実行し続けるには、次のいずれかのソリューションを選択します。

ソリューション 1: nohup および & コマンドの使用

nohup コマンドを使用すると、ターミナルを閉じた後もプロセスを実行し続けることができ、& 記号はプロセスをバックグラウンドに送ります。

  1. バックグラウンドでコマンドを実行します。

    このコマンドは、出力とエラーの両方を [your_log_file] にリダイレクトします。

    sudo nohup [your_command] >[your_log_file] 2>&1 &
    たとえば、bash hello.sh をバックグラウンドで実行し、出力を現在のディレクトリの output.log という名前の新しいファイルに書き込むには、次のコマンドを実行します: sudo nohup bash hello.sh > output.log 2>&1 &
  2. コマンドの出力を表示します。

    sudo tail -f [your_log_file]
  3. プロセスを終了します。

    重要

    プロセスを終了すると、コマンドまたはタスクが終了します。注意して進めてください。

    1. プロセス ID (PID) を見つけます。[your_command]ステップ 1 で実行したコマンドに置き換えます。

      sudo ps aux | grep "[your_command]"
      たとえば、sudo nohup bash hello.sh > output.log 2>&1 & を実行した場合、sudo ps aux | grep "bash hello.sh" を実行してその PID を見つけます。
    2. sudo kill [PID] コマンドを使用してプロセスを終了します。

ソリューション 2: GNU screen の使用

  1. GNU screen をインストールします。

    • Alibaba Cloud Linux および CentOS の場合

      sudo yum install -y screen
    • Debian および Ubuntu の場合

      sudo apt-get install -y screen
  2. 新しいセッションを作成して入ります。

    [Name] はセッションのカスタム名です。

    screen -S [Name]
    たとえば、mysession という名前のセッションを作成するには、sudo screen -S mysession を実行します。
  3. 新しいセッションでタスクを実行します。

  4. セッションをデタッチします。

    Ctrl+A+D を押して、現在の screen セッションをデタッチします。

  5. セッションを再開します。

    1. 利用可能な screen セッションを一覧表示して、ターゲットセッションの PID を見つけます。

      sudo screen -ls
      There is a screen on:
              2046.mytask     (Detached)
      1 Socket in /run/screen/S-root.

      この例では、セッション PID は 2046 です。

    2. セッションを再開します。

      [PID] を前のステップのセッション PID に置き換えます。

      sudo screen -r -d [PID]
      たとえば、PID が 2046 のセッションを再開するには、sudo screen -r -d 2046 を実行します。
  6. セッションを終了します。

    重要

    セッションを終了すると、その中で実行されているすべてのタスクとコマンドも終了します。注意して進めてください

    [PID]セッションの PID に置き換えます。

    sudo kill [PID]