19

サーバーを起動し、launchdがサーバーを強制終了したときに(シャットダウン時に)正常に終了するように指示するlaunchdのスクリプトを実行します。私の質問: シグナルを受け取るまでスクリプトをアイドル状態にする適切で慣用的な方法は何ですか? while-true-sleep-1 ループを使用する必要がありますか、またはこれを行うためのより良い方法はありますか?

#!/bin/bash

cd "`dirname "$0"`"

trap "./serverctl stop" TERM
./serverctl start

# wait to receive TERM signal.
4

3 に答える 3

5

プレーンwaitは、スリープ状態であっても、スピンロックよりも大幅にリソースを消費しません。

于 2011-12-06T14:24:32.853 に答える
1

スクリプトを実行し続けたいのはなぜですか?何か理由はありますか?信号の後で何もしなければ、その理由はわかりません。

シャットダウンからTERMを取得すると、serverctlとサーバー実行可能ファイル(存在する場合)も同時にTERMを取得します。

これを設計で行うには、serverctlスクリプトをrcスクリプトとしてインストールし、init(開始および)停止させる必要があります。ここでは、元々サーバーとして機能するように設計されていないサーバープロセスを設定する方法について説明しました。

于 2011-12-01T10:44:37.763 に答える