Как предлагает @cas, ps
может показать вам некоторую информацию. Добавление параметров может показать командную строку , что является шагом в правильном направлении. Для этого сценария:
#!/usr/bin/env bash
while true
do
date
sleep 10
done
предлагаемый ps -ww
показывает следующие строки для этого процесса:
9417 pts/5 00:00:00 bash
9496 pts/5 00:00:00 sleep
Однако ps -fwwl -u $ USER
показывает следующее:
0 S tom 9417 9416 0 80 0 - 29405 - 18:08 pts/5 00:00:00 bash ./foo
0 S tom 9419 9417 0 80 0 - 28111 - 18:08 pts/5 00:00:00 sleep 10
потому что Я выполнил ./ foo
. Если бы я выполнил «foo» со своего пути, конечно, не было бы «./». В любом случае фактический выполняемый сценарий зависит от значения $ PATH
, а также от текущего рабочего каталога (при запуске сценария). Для некоторых систем с procfs (таких как Linux) можно получить эту информацию:
Учитывая все это , существует достаточно информации (по крайней мере, для Linux), чтобы кто-то создал сценарий, который проанализировал бы вывод ps
, чтобы найти сценарии, упомянутые с (или без) полными путями.
Как ни странно, я ожидал, что lsof
предоставит информацию, потому что большинство оболочек действуют так, как будто у них есть открытый файловый дескриптор для сценария (но я не вижу этого при быстрой проверке). Таким образом, анализ ps
и среды оболочки кажется подходящим способом для полного решения.
Дополнительная литература: