ログアウトした後もプログラムを実行し続けて欲しい。最小手数でやりたい。
##やること
AWSのLightsailにSSHから入ってpythonなどを実行すると、SSHを切った途端、プロセスも終了してしまいます。
そこでSSHを切っても内部的にはプロセスをやり続けてもらうように一工夫します。調べた中で一番簡単と感じた方法です。
データ処理などの重い計算をやってもらう時に便利です。
##環境
- AWS Lightsail
- ubuntu(wordpress入り)
##ポイント
- nohupという方法があるようだが、うまくいかなかった。
- tmuxという方法もあるようだが、インストールが必要だしよくわからない。
- screenで解決できるらしい。
##参考
https://qiita.com/IshitaTakeshi/items/531e4c9c1782a7549a62
##やり方
$ screen <実行したいコマンド>
$ screen python sample.py のような感じで実行するだけです。
実行後はCtrl + A のあと Ctrl + D とするとシェル画面に戻れます。
仮想スクリーンを立ち上げてそのシェル上でコマンド実行を行うので、仮想スクリーンを離れても、つまりターミナルからSSHを切ってもプロセスが中断されない、という仕組みのようです。
##プロセス確認や復帰の方法
再ログインした後などに、
$ ps r
とすると、実行中プロセスのPID(プロセスID)が表示されるので稼働状態を確認できます。
プロセスを止めたい場合には
$ kill <PID>
で停止できます。
プロセスを実行したシェルに戻りたい時は、
$ screen -ls
でリストを表示し、PID(行の冒頭の数字)を確認してから
$ screen -r <該当のPID>
とすると、プロセスを実行したシェル画面に入れます。
##わからないところ
この方法でプロセスを何日でも永遠に続けてくれるのかどうかはまだわかりません。