【Linux】Bashのバックグラウンドで実行する
こんばんは、葛の葉です。
さて、今回はLinuxでバックグラウンドモードで起動する方法をお伝えします。
flaskアプリを作る
以下のコードをapp.py
として作成する。
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "Hello World!"
&を使う
例えばflask
アプリがあるとして、flask run
で通常通り実行すると以下のようになります。
[kuzunoha@:13:44:38:~]$ flask run * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
こうなるとキーを受け付けません。
flask run &
として実行をすればバックグラウンドで起動します。
[kuzunoha@:13:40:16:~]$ flask run & [1] 11422 [kuzunoha@:13:41:06:~]$ * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) ■ <- EnterKeyを押す [kuzunoha@:13:42:21:~]$
コマンドが返ってきているようですがよくわからないのでエンターキーを押してみましょう。PSが表示されどういうことかがわかりやすくなります。
バックグラウンドで動いているのでCurlで確認できます。
[kuzunoha@:13:45:45:~]$ curl http://127.0.0.1:5000/ 127.0.0.1 - - [19/Jul/2019 13:47:28] "GET / HTTP/1.1" 200 - Hello World![kuzunoha@:13:47:28:~]$
バックグラウンドで動いていたコマンドを元に戻す
fg
と打てばコマンドが戻ってきます。
[kuzunoha@:13:47:28:~]$fg flask run
flask run
のコマンドに戻ってきたのでCtrl + c
で停止します。
^C[kuzunoha@:13:49:29:~]$
起動中のバックグラウンドコマンドを見るには
jobs
コマンドを打ちます。
[kuzunoha@:13:49:29:~]$flask run & [1] 12423 [kuzunoha@:13:50:16:~]$jobs [1]+ 実行中 flask run &
また、バックグラウンドで起動しているコマンドを削除をするにはkill
を使います。kill %n
としてjobs
で表示された[n]を指定します(nはjob番号といいます)。
[kuzunoha@:13:50:18:~]$kill %1 [1]+ Terminated flask run [kuzunoha@:13:53:30:~]$jobs [kuzunoha@:13:53:39:~]$ <- jobに表示できるものがないため何も返されない