文件命令行不再显示脚本名称

文件命令行不再显示脚本名称

我们有 2 台 Linux 服务器,一台是 SLES 11 SP3,另一台是 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 总是链接到脚本。

相关内容