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
143
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

バックグラウンド実行で時間短縮しよう!!

はじめに


 久しぶりに研究したら、nohupコマンドと&での実行(バックグラウンド実行)方法を少し忘れていたので、やり方を残しておく。
 pythonで実行するけど、どの言語・実行でも可能。

バックグラウンドで実行する。


まずは普通に

 普通の実行方法だと、

$ python main.py

 これで実行すると、長い処理だと処理が終わるまで何もできなくなって困る。タブを開いてもいいけどめんどくさいし、sshで接続してる時とかは通信が途切れても大丈夫なようにしないといけない。
 その時に使うのが、nohupコマンドと&です。

$ nohup python main.py &

 このように、nohupと&で挟むだけでバックエンドで実行できます。

出力先を変える

 普通に実行すると、nohup.outというファイルに結果が溜まってしまうので、また実行した時とかにもどんどん溜まり、gitで扱う時とかもファイルが大きくなってめんどくさくなる。
 そこで、出力先を変更する。まずは出力先用ディレクトリを作ると便利。

$ nohup python main.py > ~/output_log/out.log &

 これで、output_logというディレクトリにout.logというファイル名で保存される。2回目以降はファイル名をout2.logとか好きなように変更すれば良い。

バックグラウンドの状況を確認する。


 バックグラウンドの実行状況が確認したい時はこのようにする。

$ ps u

 これで、実行状況が確認できる。

バックグラウンド実行している処理を止める


 バックグラウンドで実行している処理が長すぎて、これエラー何じゃない??って時は、killコマンドでプロセスを殺します。

$ kill -KILL PID

 PIDのところには、ps uで確認したプロセスIDを書けばOK!!

終わりに


 さくっと書いたけどこんな感じです。これで、処理を実行させて家に帰って、次の日の朝に確認ってできるので、効率的に作業できますね!

 エラーの出力先を指定するっていう方法もあるので、参考も見てみてください。

参考


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
143
Help us understand the problem. What are the problem?