startprocで始まるプロセスのPIDを見つける方法は?

startprocで始まるプロセスのPIDを見つける方法は?

私が理解しているのは、一般にデーモン用のPIDファイルを生成するのが良いアイデアだということです。これはstartprocそのデーモンを起動する良い方法です。

PIDファイルを参照するには、-iおよび-pパラメーターが必要であることを認識していますが、startprocPIDファイルを作成または開始したデーモンのIDで更新しません。 echoを使用する$!と、正しいプロセス識別子も提供されません。startproc

startprocデーモンのPIDを取得する方法について提案がある人はいますか?


とにかく、私はrcスクリプトを作成していて、権限のないユーザーでJVMを起動したいと思います。私はこのユーザーにログインシェル(オプションではありません)を提供したくなく、su -c "java ..." userデーモンの実行中にルートプロセスを停止したくありません(これは除外されますsudo -Eu user java ...)。したがって、これはすべての可能な解決策であることを認めていますが、それらのどれも理想的ではないと思います。しかし、これらの選択肢について私の仮定が間違っている場合は、いつでも修正してください。

ベストアンサー1

これを行う方法を知っている人は誰もいないようです。

java代わりに、私はTomcatがデフォルトで行うことをしました。シェルスクリプトを作成して直接呼び出すのではなく、私のサービスから呼び出しました。

echo $!このシェルスクリプトは、JVMの起動後にPIDファイルを生成する役割も担当します。シャットダウンの場合、このPIDファイルを確認し、正常終了後に削除するための同様のスクリプトを作成しました。どちらのスクリプトもsudo -Eu $USER script_name.shサービスから呼び出されます。

startproc技術的には、これは解決策がそれを全く使用していないため、私の質問には答えませんが、うまくいき、実行中のプロセスのコマンドラインを比較するのは面倒な作業を防ぎます。

おすすめ記事