私は背中をmemcache
使ってWebフレームワークに基づくWebアプリケーションを開発しています。コンソール出力を表示するか、必要に応じてデバッガに入るようにフォアグラウンドに配置する必要があります。mongodb
python
python
現在私は一つを持っていますstart.sh
memcache_start
mongodb_start
python fg
そしてstop.sh
memcache_stop
mongodb_stop
スクリプトはすべてを自動化できます。
python
Ctrl通常、fgで-killを使用します。システムを正常にシャットダウンするには、Cそれをpython
明示的に実行する必要があります。stop.sh
start.shが論理的に実行する必要がある次の連続操作であるため、stopコマンドを実行できることがわかりCtrlますか?C SIGINT
答え1
Pythonを実行する前にSIGINTを無視し、デフォルトの動作を復元するようにtrap ' ' INT
シェルに指示するために使用します。trap - INT
memcache_start
mongodb_start
trap ' ' INT
python fg
trap - INT
memcache_stop
mongodb_stop
このtrap ' ' INT
行の後には、シェルにSIGINTを無視するように指示しますが、python
これには影響しません。したがって、Ctrl+をクリックすると正常に終了Cしますがpython
、シェルはスクリプトの残りのクリーンアップコマンドを実行し続けます。 2番目のコマンドtrap - INT
は必ずしも必要ではなく、Ctrl再度+を使用してCクリーニングプロセスを停止できます。つまり、SIGINTをに送信すると、memcache_stop
シェルは実行を試みずmongodb_stop
に単に終了します。
ここ詳細な記事では、シェルが SIGINT/SIGQUIT を処理する方法について説明します。