OpenSUSEのSys-V型初期化スクリプトでstartproc、killproc、およびcheckprocを使用する理由

OpenSUSEのSys-V型初期化スクリプトでstartproc、killproc、およびcheckprocを使用する理由

OpenSUSE 11.4sysvinit-toolsパッケージには、startprocドキュメントとOpenSUSEのドキュメントに従ってkillprocSys-Vタイプinitスクリプトで使用する必要があるバイナリが含まれています。このバイナリの背後に隠されたアイデアは何ですか? 、、、および他の同様のツールを使用して、およびと同じ機能を実行できませんか?checkproc/etc/init.d/skeletonstartprockillproccheckprocnicesudosleep

答え1

まず、特定のプログラムを定義しましょう。 起動プロセス

startproc:startprocとLSBのバリアントstart_daemonは、すべてのプロセスで指定された実行可能ファイルを確認し、プロセスが存在しない場合に開始します。 startprocはプロセスを取得するためにpidを使用しませんが、実行可能ファイルを識別するためにそのプログラムのフルパスを使用します。

プロセス終了

Killproc は、指定された実行ファイルを使用してすべてのプロセスにシグナルを送信します。信号名が指定されていない場合は、SIGTERM 信号が送信されます。 Killprocはpidを使用してプロセスにシグナルを送信するのではなく、そのプログラムのフルパスを使用して実行可能ファイルを識別します。

確認プロセス

checkprocは、指定された実行可能ファイルを使用して実行中のプロセスを確認します。 checkprocはプロセスをチェックするためにpidを使用しませんが、実行可能ファイルを識別するためにそのプログラムのフルパスを使用します。

Nice、sudo、sleepは、上記のプログラムに関連するいかなる作業も行いません。

もちろん、すべてのスクリプト言語(bashなど)または他のコンパイルされた言語でkill / start / checkprocで同じロジックを実行できます。ただし、これらのプログラムの目的は、この機能を必要とするすべてのユーザーにこの機能を提供することです。したがって、ユーザーは他のディストリビューションと異なるオペレーティングシステムで同じロジックを作成/再作成する必要はありません。

関連情報