2

Redhat Linux と思われる限定バージョンで NAS を実行しています。指示に従ってハッキングして、シェルにアクセスできるようにしました。これは大きな助けになりました。私はまた、他の人が行ったいくつかの変更を行いました.1つの問題を除いて、それらはすべて正常に機能しているようです.

どういうわけか、22 日ごとにシステムがシャットダウンします。ps を実行するスクリプトを使用して、shutdown が実際に呼び出されることを確認しましたが、shutdown を呼び出すプログラムがわかりません。

/sbin/shutdown の名前を変更すると、それを置き換えるスクリプトを作成できます。しかし、私が知りたい最も重要な情報は、どのプログラムがシャットダウンを呼び出しているかということです。

プログラムが私のスクリプト (偽の /sbin/shutdown) を実行する場合、どのプログラムが私のスクリプトを呼び出したかを調べるにはどうすればよいですか? スクリプト内から、最初にスクリプトを呼び出したプログラムを特定できるようにしたいと考えています。簡単にできるなら、bash スクリプトの代わりに Perl スクリプトをいつでも使用できます。

4

2 に答える 2

3

おそらく最も簡単なのはps afx、スクリプトが呼び出されたときの完全な出力をダンプすることです。これにより、すべてのプロセス (スクリプトを含む) のリストがツリー形式で表示され、スクリプトを呼び出したものだけでなく、それを呼び出したもの、および他に実行中のものも表示されます。

于 2012-06-07T04:31:23.440 に答える
3

バッシュでは、ps -p $$ -o ppid=. 出力は、親プロセス (呼び出しプロセス) の pid です。/proc/<pid>/cmdline親 pid があれば、 ( procfs の詳細)からそのコマンド ラインを読み取ることができます。

于 2012-06-07T03:59:23.670 に答える