シェルプロセスは特別なパラメータな$$
ので
Linux では、 proc(5)ファイルシステムがプロセスに関する多くの情報を提供します。おそらく
pgrep(1) (にアクセスし/proc
ます) も役立つかもしれません。
cat /proc/$$/status
そのため、シェル プロセスのステータスを取得してみてください。
したがって、その親プロセスIDは次のように取得できます
parpid=$(awk '/PPid:/{print $2}' /proc/$$/status)
次に$parpid
、スクリプトで使用して、親プロセス pid (シェルの親) を参照します。
しかし、私はあなたがそれを必要とは思わない!
いくつかのBash ガイド(または、誤りのある高度な bash スクリプト作成ガイドを注意して読んでください) と高度な Linux プログラミングを読んでください。
一部のサーバー デーモン プロセス (通常は一意である必要があります) が明示的に pid を に書き込んでいることに注意してください/var/run
。たとえば、 sshd
サーバー デーモンはその pid をテキスト ファイルに書き込んでいます/var/run/sshd.pid
。このような機能を独自のサーバーのようなプログラム (C、C++、Ocaml、Go、Rust、またはその他のコンパイル済み言語でコーディングされたもの) に追加したい場合があります。