ホームページ  >  記事  >  運用・保守  >  Linux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

Linux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

黄舟
黄舟オリジナル
2017-05-26 09:29:505455ブラウズ

クラウドサーバー ECS Linux システムでは、通常、実行に時間がかかるタスクを実行する場合、実行が完了するまで待ってから SSH 接続を切断したり、クライアント ソフトウェアを閉じたりする必要があります。そうしないと、実行が中断される可能性があります。 。この記事では、ユーザーがログアウトログインした後もプログラムが実行し続けることを保証するためのいくつかの方法を紹介します。

管理端末を使用して実行します

管理端末を介してサーバーのローカルセッション(コンソール)ポートにログインします。この端末で実行されるプログラムは、SSHログインユーザーの終了の影響を受けません。具体的な操作方法は以下の通りです。

1. 管理端末からサーバーにログインします。

2. 必要なプログラムまたはスクリプトを実行します。

3. 次回タスクの実行ステータスを確認する必要がある場合は、再度管理端末に接続して確認してください。

nohup を使用して実行する

nohup は、名前が示すように、後続のコマンドが SIGHUP シグナルに応答するのを防ぎます。つまり、

リモートログインでnohupを実行した後、ログアウトしてもプログラムは正常に実行されます。通常、nohup コマンドの最後には、コマンドがバックグラウンドで実行されることを示す & 文字が続き、コマンドをバックグラウンドで継続的に実行できます。

操作例: 1. 通常の実行コマンドは
bash hello.sh で、実行結果は 1 秒あたり 1 行を出力する小さなプログラムです:

Linux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

2.コマンドの先頭と末尾が

nohup bash hello.sh & に変わります。この時点で、nohup が 1 行の情報を出力することがわかります。コマンドはバックグラウンドで実行され、nohup はコマンドの出力を現在のディレクトリの nohup.out ファイルにリセットします。また、nohup は、対応するプログラムの PID を出力するので、プロセスを中断する必要がある場合、その PID を使用してプロセスを強制終了できることにも注意してください。

Linux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

3.

tail -f nohup.out を使用すると、nohup.out の出力を継続的に表示して、プログラムを監視する効果を得ることができます。

Linux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

4. コマンドでリダイレクトを使用して、プログラムの出力を必要なファイル名に変更することもできます (

nohup bash hello.sh >hello.log &)。プログラムは hello.log ファイルに書き込まれます。

5. プログラムが自動的に終了しない場合は、kill コマンドを使用してプロセスを終了する必要があります。たとえば、コマンド

kill -TRM を使用して操作できます。ここで、PID は以前に nohup によって出力された値であり、この例では値は 1231 です。

使用制限:

nohup は通常、介入なしで自動化されたプログラムまたはスクリプトを実行するために使用され、対話しながら操作を完了することはできません。

screen を使用して実行します

インストール sceen ツール

Linux システムにはデフォルトで screen ツールが付属していません。最初にインストールする必要があります:

  • CentOS シリーズ システム:

    yum インストール画面

  • Ubunt uシリーズシステム:

    sudo apt-getインストール画面

使い方

はじめに

1. 画面プロセスを一覧表示し、必要な画面

screen -S  name
# name可以设置为ssh、ftp,用于标注该 screen 窗口用途
# 示例:screen -S ftp

を入力します。以下に示します


その後、スクリプトの実行、プログラムの実行など、必要な操作に進みます。 Linux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

以下に示すように: FTP 接続を作成し、バックグラウンドで転送ファイルをダウンロードします

3. 終了して保存しますLinux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介

上記の FTP 操作の例では、転送を開始し、ウィンドウで Ctrl+A キーを入力します。次に d キーを押して SSH ログインを終了しますが、画面プログラムの実行には影響しません。

4. セッションを保存して実行を続行します

screen 機能を使用してリモート セッションを管理できます。操作手順の概要:

サーバーへの通常のSSHログイン
  • 画面ウィンドウを作成する
  • 必要なタスクを実行する
  • 一時的に中断して終了する必要がある場合は、Ctrl + dを押して保存しますそして終了します
  • 作業を続行し、再度 SSH 経由でサーバーにログインし、
  • screen -r -d
  • を直接実行してセッションを復元する必要があります。

以上がLinux で SSH クライアントが切断された後もプロセスを実行し続ける設定方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。