動的リンカーを介してすべてのプロセスでいくつかのスタートアップコードを実行しようとしています。
コードは、プロセスの0番目のパラメータに基づいてアクションを実行する必要があります。パラメータを取得しますが/proc/self/cmdline
(メインの外部からアクセスするより良い方法を知っている場合はお知らせください)、これには問題があります。
スクリプトは#!
0番目の引数としてshebang(なし)を使用します。この場合、次の引数に興味があります。しかし、解釈されたプロセスと基本プロセスをどのように区別しますか?
答え1
ここで抽出された詳細は/proc/self/status
(スクリプトは必要ありません)にあります。/proc/self/comm
予想される質問について:どのプロセスが適切かを決定してください。説明したそしてどれ国の、どのプロセスを実行するのかわからない場合は、これを行うことはできません。通訳。結局のところ、すべてのプロセスは、exec
結果プロセスの引数リストとして必要なものを使用して呼び出して名前を変更できます。あなたはできます推測する実行可能ファイルを指して/proc/self/exe
引数リストと比較しますが、これは、解釈者ではない人がより明確に使用するために子孫の名前を変更する例があるため、推測にすぎません。
追加資料:
答え2
手続きがName
入ったと思います。
</proc/self/status |grep '^Name'
名前はbasename
0番目のパラメータの実際の名前のようです。
(誰かがより良い答えを得るためにここに質問を残しておきます。)