1
0

nohupを用いてstreamlitをバックグラウンドで動かしていたらIDが迷子になった!時の対処法

Posted at

「nohupを用いてstreamlitをバックグラウンドで動かしていたらIDが迷子になった!時の対処法」

こんにちは、すぎもちです。今回は、バックグラウンドでstreamlitアプリを動かす際にnohupコマンドを使用しているときに起きがちな問題、それは「プロセスIDがわからなくなった!どうしよう?」という状況の対処法について、備忘録として残しておきたいと思います。

問題の発生

streamlitを含む様々なアプリケーションをバックグラウンドで動かしておきたいとき、私たちはしばしばnohupコマンドを利用します。例えば、こんな感じで:

nohup streamlit run app.py &

このコマンドは、ターミナルが閉じてもstreamlitアプリが止まらないようにしてくれます。非常に便利ですが、問題が一つ。ターミナルを閉じたり、PCを再起動したりすると、「あれ、動かしていたあのアプリ、どうやって止めればいいんだっけ?」という状況に陥りがちです。

特に、streamlitのようにポートを占有して動作するアプリケーションの場合、新たにアプリを起動しようとすると「そのポートは既に使用されています」というエラーに遭遇することがあります。そんな時に、バックグラウンドで動いているアプリのプロセスID(PID)を見失ってしまっては、対処が難しいですよね。

対処法

では、バックグラウンドで動いているstreamlitのプロセスIDをどうやって見つけ出すのか。解決策は、実にシンプルです。

ターミナルで以下のコマンドを実行します。

ps ax | grep streamlit

これにより、現在実行中のstreamlitプロセスの一覧が表示されます。表示された情報の左側にある数字が、そのプロセスのIDです。

例えば、こんな出力があったとしましょう。

12345 pts/1    S      0:00 nohup streamlit run app.py

この場合、12345がプロセスIDになります。これを知った上で、以下のコマンドでプロセスを終了させることができます。

kill 12345

これで、バックグラウンドで動かしていたstreamlitアプリを無事に終了させることができます。

まとめ

nohupstreamlitをバックグラウンドで動かしているときに、プロセスIDを見失った!という状況に陥った際は、ps ax | grep streamlitコマンドが非常に役立ちます。この備忘録が、同じような状況に直面した方の一助となれば幸いです。

皆さんの開発生活が少しでも楽になることを願っています。それでは!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0