使用 PID 查找服务器上运行的 bash 脚本的文件名/位置

使用 PID 查找服务器上运行的 bash 脚本的文件名/位置

作为我工作的新公司的培训练习,一位朋友在我的网络服务器上放置了一个脚本,该脚本显示( ͡° ͜ʖ ͡°)在我的 CLI 屏幕的右上角,然后嵌入到服务器中。

使用ps -ef我找到了正在运行的脚本:

root     20071     1  0 Oct07 ?        00:03:04 bash

我尝试运行:

ps -p 20071 -o comm=

哪个输出 =bash

我也尝试过l -la /proc/20071/exe

哪个输出 =

lrwxrwxrwx 1 root root 0 Oct  7 21:03 /proc/20071/exe -> /bin/bash*

我位于usr/bin/我认为脚本所在的位置,但我似乎无法隔离它,因为我没有看到bash该文件夹​​中的引用。

我对 CLI 相当陌生,所以我知道我一定错过了一些明显的东西。脚本本身是否称为 bash,或者只是显示类型?我假设该脚本是一个 .sh 文件,但我不确定。

有没有办法使用 PID 或其他方法来确定正在运行的脚本及其所在位置?

答案1

这是一个 bash 脚本,因此该进程正在执行/bin/bash。这很正常。

该脚本由 bash 进程打开。使用ls -l /proc/20071/fdlsof -p 20071列出该进程打开的文件。默认情况下,您将在文件描述符 255 上找到该脚本。

cat /proc/20071/fd/255

(这是否是导致音标和变音符号出现在您的终端上的原因,以及它是如何做到这一点的,都是不同的问题,您目前没有足够的信息。)

相关内容