Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
120
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@IshitaTakeshi

SSHからログアウトした後もプロセスを起動しておく方法

SSHでリモートに接続して,SSHの接続を切った後もプロセスを回し続けたいという場面があります。
私の場合は,リモートのGPUマシンに接続して機械学習のモデルを学習させたいときがこれにあたります。

nohup

nohupコマンドを使うと,stdout/stderrへの出力をファイルに書き出すことができます。

$nohup <command> &

<command>の部分には実行したいコマンドを入れます。例えばpython3 train.pyを実行し続けたい場合,

$nohup python3 train.py &

とするとSSH接続を切ったあとも学習を続けられます。

screen

screenコマンドは実行画面をセッションとして残しておくことができます。
nohupと同じようにコマンドを引数として渡すと実行が開始され, Ctrl-A → D で画面から抜け出すことができます。
この状態でSSH接続を切ってもプロセスは実行され続けます。

$screen python3 example.py
[detached from 12689.pts-4.user]
$exit
Connection to localhost closed.

SSHに再接続したら,screen -lsで復帰したい画面を選ぶことができます。

$ssh remote
$screen -ls
There are several suitable screens on:
    12762.pts-4.user    (12/15/2016 07:05:42 PM)    (Detached)

画面を選んで再接続すれば実行画面にもどれます。

$screen -r 12762
[detached from 12762.pts-4.user]
120
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
120
Help us understand the problem. What is going on with this article?