シェルスクリプトから"foreman start"したときにCtrl-Cで終了できないという現象に遭遇しました。なぜこのようなことが起こったのかについて調べてみたので解説します。一見不可解におもえるプロセスの振舞いをUNIXプロセスの仕組みをひもとき説明してみたというおもむきの記事です。 概要 foremanはシェルスクリプトから、"foreman start"のように起動したときにCtrl-C終了できません。シェルスクリプトでなくてもssh経由で ssh -t host foreman start のようにした場合でも同様の問題が発生します。これは、foremanがsetpgrpシステムコールを呼び出してプロセスグループのリーダになるという動作をしていたのが原因でした。 現象 以下のように "foreman start"をシェルスクリプトから実行すると、Ctrl-Cによりforemanを
このように独立したポートが必要なとき*3に $PORT を利用することで汎用性が保たれます。 $PORT の開始番号を指定する(-p, --port) 標準では $PORT は 5000 から始まります。しかし、以下のように指定すると 6000 から始まるようになります。 foreman start -p 6000 foreman は、主に Web アプリケーションと非同期/定期処理とを並列動作させる目的で使われます。 その場合、Procfile の先頭に Web アプリケーションを書くという慣習があります。それは Web アプリケーションが利用するポート番号がわかりやすいからです。 foreman を止める foreman を正式に止めるには、foreman のプロセスに SIGTERM を送信してください。 foreman は起動した個々のプロセスに対して SIGTERM を送信し、全
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く