私たちは2つのLinuxサーバーを持っています。 1つはSLES 11 SP3、もう1つはSLES 12 SP2です。
Sles 11 sp3で$ PID 2200のバッチスクリプト(名前「test.sh」)を起動すると、次の場所に移動できます。
/proc/2200/cmdline
あなたは次のようなものを見るでしょう
/bin/shtest.sh
したがって、ここからスクリプト名を取得できます。
Sles 12 sp2で見たばかりのものとまったく同じことをすると、
-bash
$ PPIDを使用して親スクリプトの名前を取得できるように名前を含めることをお勧めします。
ただし、sciptファイル名はもう存在しません。
今、親スクリプトの名前を取得する別の方法はありますか?
よろしくお願いします。
編集:新しいサーバー(12 sp 2)では、/proc/"id"の名前を持つ唯一の場所は "/proc/"id"/fd"です。
fstest:/proc/11248/fd # ls -l
total 0
lrwx------ 1 root root 64 Feb 9 15:52 0 -> /dev/pts/3
lrwx------ 1 root root 64 Feb 9 15:52 1 -> /dev/pts/3
lrwx------ 1 root root 64 Feb 9 15:52 2 -> /dev/pts/3
lr-x------ 1 root root 64 Feb 9 15:52 254 -> /batch/test1.sh
lrwx------ 1 root root 64 Feb 9 15:52 255 -> /dev/pts/3
しかし、どうすればいいのかわかりません。 「254」とは何ですか?ありがとう
答え1
私は答えを見つけました:
"/proc/"id"/fdにはファイル記述子があります(上記を参照)。
0、1、2は常に「in」、「out」、「err」です(順番に並べ替えないでください)。
254は常にスクリプトに接続されているようです。